环境:
开发环境: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表
开发环境: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表
解决方案 »
- oracle用PL/SQL建表空间时报错
- pl/sql下改自己的密码?
- 急问:如何用pro*C实现unix操作系统下的Oracle数据库表的导出
- 求助 WIN8 64位安装ORACLE 12C报错INS-30131
- oracle中动态游标理解?
- Oracle 9i中文版基础教程(第二版)这本书如何?
- ORACLE数据库里的WHERE语句中的条件句执行问题
- imp 如果导出用户拥有DBA权限,则导入用户也必须拥有DBA权限,如何给用户 dba权限
- 数据导入导出问题,各位帮忙!
- 急问触发器问题,在线等待!
- oracle 正则表达式,特殊字符替换问题
- JOB中存储过程有dbms_output.put_line,对该过程的UPDATE,INSERT,DELETE会有影响吗?
iso-8859-1=38
gbk=72
utf-8=114
初步判断,你这个跟weblogic有关,它可能内部将你的字符串转为utf-8了,你的38个汉字,弄成utf-8估计就超标了。如果是纯jdbc程序,相信不会有此问题。你可以采用字符串长度*4的策略设计字段长度。
那基本上就是weblogic的问题了。既然这样,还是采用*4的策略吧。