当前位置: 代码迷 >> DB2 >> [SQL0406] 在列WZNAME赋值时出现转换异常
  详细解决方案

[SQL0406] 在列WZNAME赋值时出现转换异常

热度:6834   发布时间:2013-02-26 00:00:00.0
[SQL0406] 在列WZNAME赋值时出现转换错误
表结构如下:
字段名称 字段类型
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 (?, ?, ?, ?, ?)
其中参数赋值由java代码控制
时发生错误,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写错了