环境:
开发环境:Windows + jdk1.6
weblogic:Windows 下weblogic10.3
数据库:Unix 下oracle 10g 字符编码为NLS_CHARACTERSET=ZHS16GBK
情况这样,使用java先查询一个表a的数据,因为b表要使用a表的某些字段,故做一些操作,将b表实体类的一些字段的值set为a表中相应字段的值,然后在插入到oracle的b表中。其中a和b均有itemname这个字段,数据库中设置的长度为120字节。
其中有一条数据itemname为38个汉字,但是在插入的时候报异常如下:
java.sql.SQLException: ORA-12899: value too large for column "CCICCIRC"."STATMONTHVALUE"."ITEMNAME" (actual: 133, maximum: 120)
注:STATMONTHVALUE 相当于b表
------解决方案--------------------
确定一下是不是有空格或字符集对不对
------解决方案--------------------
select lengthb('汉') from dual;测试汉字字节长度,另外你也可以在测试库上手工执行你的SQL看能不能插进去,看看是你的Java还是你的数据库问题。
------解决方案--------------------
------解决方案--------------------