表结构如下:
字段名称 字段类型
WZPHA1 N(16)
WZDWCD C(13)
WZPSCD C(19)
WZNAME C(20)
WZJFGZ N(5,2)
当执行
- SQL code
insert into ryqqb(WZPHA1, WZDWCD, WZPSCD,WZNAME, WZJFGZ) values (?, ?, ?, ?, ?)
时发生错误,Log记录如下:SQL [ insert into gxwbzjp (WZPHA1, WZDWCD, WZPSCD,WZNAME, WZJFGZ) values (?, ?, ?, ?, ?) ]; [SQL0406] 在列WZNAME赋值时出现转换错误。; nested exception is java.sql.BatchUpdateException: [SQL0406] 在列WZNAME赋值时出现转换错误。
我查了下,SQL0406这个DB2错误代码表示在 UPDATE 或 INSERT 语句中的数值不在它的目标列范围内,但是我的WZNAME这个字段是字符类型,而不是数值类型,请问怎么回事?
------解决方案--------------------------------------------------------
字符类型的,在语句里面要用 '' 单引号括起来,你不是连这个都没加吧?
insert into ryqqb(WZPHA1, WZDWCD, WZPSCD,WZNAME, WZJFGZ) values (?, '?', '?', '?', ?)
数值型的就不用了
------解决方案--------------------------------------------------------
字符类型,也是有值的
你看看是不是超长了。或者赋值的个数不对,串了
------解决方案--------------------------------------------------------
看代码 是不是持久化的or-mapping写错了