posts - 31,  comments - 31,  trackbacks - 0
      今天用sun的jdk调的没有一点问题的数据抽取程序,方放到AIX上后不能用了,oralce报出向一个字段中插入了过长的数据,可是程序在几天前还是没有问题的,后来分析可能是字符集导致的,因为前几天修改过informix数据库的字符集由8859-1转为了zh_cn.gb18030-2000,但解决过程异常艰难,后来吧informix的url改为<value>jdbc:informix-sqli://xx.xx.xx.xx:8888/XXXX:informixserver=whcspdev;DB_LOCALE=zh_cn.gb18030-2000;CLIENT_LOCALE=zh_cn.UTF8(原为zh_cn.gb18030-2000);NEWCODESET=gb18030,gb18030-2000,5488,utf8</value>就可以了。后来猜测了一下原因:
1、oracle数据库的jdbc驱动是是自动将数据库的数据转为unicode格式,这可能跟java的String默认为unicode有关,为了让大家方便操作,
2、sun jdk的String在初始时用的是Unicode格式,ibm的jdk应该也是,但是有一点,sun的jdk在通过informix jdbc驱动取数据时不会将数据转成其他字符集,而是仍然使用Unicode,而IBM的则是通过CLIENT_LOCALE=zh_cn.gb18030-2000配置将数据格式转为了zh_cn.gb18030-2000。
所以在oracle作insert的时候就会由于字符集不匹配而报错
posted on 2007-07-18 19:23 小平 阅读(990) 评论(2)  编辑  收藏 所属分类: 随笔


FeedBack:
# re: AIX IBM JDK 上运行Informix 与oralce之间的数据批量抽取的java程序的字符集问题[未登录]
2009-01-07 20:37 | 小兵
现在在哪呢?不好意思收到你这来了,哈哈  回复  更多评论
  
# re: AIX IBM JDK 上运行Informix 与oralce之间的数据批量抽取的java程序的字符集问题[未登录]
2009-01-09 14:26 | 小平
@小兵
谁?如果认识可以私聊,哈哈  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(2)

随笔分类

随笔档案

framework

j2me

java

linux

web

其他

友情链接

素材

最新评论

阅读排行榜

评论排行榜