读书人

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

发布时间: 2012-02-26 20:19:44 作者: rapoo

[SQL0406] 在列WZNAME赋值时出现转换错误
表结构如下:
字段名称字段类型
WZPHA1N(16)
WZDWCDC(13)
WZPSCDC(19)
WZNAMEC(20)
WZJFGZN(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写错了

读书人网 >IBM DB2

热点推荐