插入数据时 DB2 SQL Error...【叫我小猫Frank】

焊工0531 2010-09-20 11:58:39
JDK 1.5 / DB2 for Linux 9.5 / SSI 框架


JavaWeb 项目开发中 - 新增客户信息功能 - 【保存】
执行 insert 语句,页面捕获异常 :

处理异常!com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/shandong/project/ibatis/sqlmap/personbasicmsg/piCusBasInfo.xml.
--- The error occurred while applying a parameter map.
--- Check the insertPiCusBasInfo-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: com.ibm.db2.jcc.am.ro: DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609, SQLERRMC=null, DRIVER=3.58.82


MyEclipse 后台报:


...
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/shandong/project/ibatis/sqlmap/personbasicmsg/piCusBasInfo.xml.
--- The error occurred while applying a parameter map.
--- Check the insertPiCusBasInfo-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: com.ibm.db2.jcc.am.ro: DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609, SQLERRMC=null, DRIVER=3.58.82
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505)
...


SQL 语句拿出来 可以单独在 数据库中成功执行。


insert into PI_CUSBASINFO(
CUSTID,
REGIONCODE,
SUBTYPE,
CREDLEVEL,
ISSECRETCUST,
CUSTNAME,
OLDNAME,
ENAMEEVER,
FIRSTNAME,
LASTNAME,
BIRTHDAY,
SEX,
VOLK,
ISCOUNTION,
COUNTRY,
LIWACODE,
ORIGIN,
OFFICEDEPT,
DEPTPROPERTY,
DEPTTRADE,
DUTIES,
APPOINTMENT,
CUSTTITLE,
JOBSTARTDATE,
CURJOBSTART,
BECOMEMYCUST,
POLITICAL,
HEALTH,
EDUCATION,
GRADUATION,
ABIDANCE,
HYMEN,
FILIAL,
MARROWNAME,
MARROWCADTYPE,
MARROWCADNO,
MARROWJOBDEPT,
MARROWTEL,
LOANCARDNO,
LOANCARDCHKDATE,
FINANCIALNAME,
LOANCARDPW,
ISMYEMPLOYEE,
ISMYSTOCKHOLDER,
STOCKTYPE,
STOCKLMT,
STOCKNO,
ISMYRELATION,
ISCUSTODIALBOX,
ISPREFERENTIAL,
PFENDDATE,
ISVIP,
VIPTYPE,
VIPCODE,
ISRSCUST,
ISWGCCUST,
ISAGENT,
ISBADCUST,
DEBTPERIOD,
CSDCREATDATE,
DEPOSITAMT,
AVGFINACE,
ISBLACKLIST,
CREDRECORDOUT,
CREDRECORDIN,
CHECKCYCLE,
CHECKSENDTYPE,
CHECKSENDADDR,
CUSTSTATE,
CHANNELCODE,
CUSTMGR,
DEPTCODE,
ORGCODE,
INPUTER,
INPUTDATE,
remark,
familymemerber,
belongorg,
belongorglncard,
custided,
regioncodeed,
loadcardno,
daybaramt,
daybalcurrency,
firstadmin,
firstadmindept,
secondadmin1,
secondadmin1dept,
secondadmin2,
secondadmin2dept,
custchater,
workenddate,
asset,
assurerate,
workdate,
intendincome,
ecrsresult,
spouseecrsresult,
DEPTADDR,
DEPTPOSTCODE,
PROFESSION,
EDUBACKGROUND,
SOCIALNO,
ISCHECK,
custLevel,
cardtype,
cardno,
officeDeptNo)


values(
'2000500058',
'0769',
'',
'',
'',
'大概',
'',
'',
'',
'',
'1997-09-18',
'1',
'',
'1',
'CHN',
'',
'',
'534',
'0005',
'N',
'1',
'',
'',
'2010-09-19',
'2010-09-19',
'2010-09-19',
'',
'',
'50',
'',
'',
'22',
'',
'',
'',
'',
'',
'',
'',
'2010-09-19',
'',
'',
'',
'',
'',
0.0,
'',
'',
'',
'',
'2010-09-19',
'',
'',
'',
'',
'',
'',
'',
0,
'2010-09-19',
0.0,
0.0,
'0',
'',
'',
'',
'',
'',
'0'||'0'||'0',
'',
'y00000a7',
'100000',
'',
'y00000a7',
'2010-12-31',
'',
5,
'',
'',
'',
'',
'',
0.0,
'',
'',
'',
'',
'',
'',
'',
'07',
'',
0.0,
0.0,
'',
0.0,
'',
'',
'',
'',
'0004',
'0003',
'',
'',
'',
'4',
'4',
'')



小猫推测,可能是数据库的配置有问题,但是
DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609, SQLERRMC=null, DRIVER=3.58.82 ,异常代码在网上搜索无果。。。。


望各位高手指导。。。。。谢谢!
...全文
257 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
焊工0531 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cnctjl 的回复:]
好复杂 哦
[/Quote]

都是过去的事儿了

。。。。
CNCTJL 2010-10-09
  • 打赏
  • 举报
回复
好复杂 哦
焊工0531 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 quiettown 的回复:]
这个句子太复杂了,不好判断哪里出错。给个调试的建议,从插入一半的的字段开始,错则减半,定位下哪个字段出错。
[/Quote]

是个法儿,117个字段。。。。。。呃....
我当初组装这个insert就费了好一阵工夫!
quiettown 2010-09-20
  • 打赏
  • 举报
回复
这个句子太复杂了,不好判断哪里出错。给个调试的建议,从插入一半的的字段开始,错则减半,定位下哪个字段出错。
焊工0531 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwwwb 的回复:]
也有这种可能,检查字段类型与常量类型是否一致
[/Quote]

我将后台打印的SQL 检出来,在控制台执行,SQL语句是可以成功执行的。
我问题里那个插入语句就是我 一个一个对出来的,数据类型都一致。

如果有类型不匹配,异常都会有明确的字段提示。。。。。

所以,小猫认为是自己数据库配置问题。
【在网上但搜“SQLERRMC=null” 会有一个关于数据库配置的解决方案,但是说的不清楚。。。。。。】
焊工0531 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 quiettown 的回复:]
SQL0417N 要准备的语句字符串包含作为同一运算符的操作数的参数标志符。
说明:
指定为 PREPARE 或 EXECUTE IMMEDIATE 的对象的语句字符串包含谓词或表达式,在该谓词或表达式中,参数标识符已用作没有 CAST 规范的同一运算符的操作数。例如:

? > ? 不能处理该语句。

用户响应:
不支持此语法。使用 CAST 规范为至少一个参数标识符……
[/Quote]

谢谢 关注。。。

我将后台打印的SQL 检出来,在控制台执行,SQL语句是可以成功执行的;其就是一个超长的insert语句,没什么“谓语动词”和“语法参数”。。。。。疑惑????
wwwwb 2010-09-20
  • 打赏
  • 举报
回复
也有这种可能,检查字段类型与常量类型是否一致
quiettown 2010-09-20
  • 打赏
  • 举报
回复
SQL0417N 要准备的语句字符串包含作为同一运算符的操作数的参数标志符。
说明:
指定为 PREPARE 或 EXECUTE IMMEDIATE 的对象的语句字符串包含谓词或表达式,在该谓词或表达式中,参数标识符已用作没有 CAST 规范的同一运算符的操作数。例如:

? > ? 不能处理该语句。

用户响应:
不支持此语法。使用 CAST 规范为至少一个参数标识符指定一个数据类型。

sqlcode : -417

sqlstate : 42609

是不是数据类型不一致?

焊工0531 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wwwwb 的回复:]
将在程序中的SQL语句贴出来看看,字符串过长?
[/Quote]

2010-09-20 11:40:17 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27)- JakartaCommonsLoggingImpl: {conn-100120} Connection
2010-09-20 11:40:17 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27)- JakartaCommonsLoggingImpl: {conn-100120} Preparing Statement: insert into PI_CUSBASINFO(CUSTID,REGIONCODE,SUBTYPE,CREDLEVEL,ISSECRETCUST,CUSTNAME,OLDNAME,ENAMEEVER,FIRSTNAME,LASTNAME,BIRTHDAY,SEX,VOLK,ISCOUNTION, COUNTRY,LIWACODE,ORIGIN,OFFICEDEPT,DEPTPROPERTY,DEPTTRADE,DUTIES,APPOINTMENT,CUSTTITLE,JOBSTARTDATE,CURJOBSTART, BECOMEMYCUST,POLITICAL,HEALTH,EDUCATION,GRADUATION,ABIDANCE,HYMEN,FILIAL,MARROWNAME,MARROWCADTYPE,MARROWCADNO, MARROWJOBDEPT,MARROWTEL,LOANCARDNO,LOANCARDCHKDATE,FINANCIALNAME,LOANCARDPW,ISMYEMPLOYEE,ISMYSTOCKHOLDER, STOCKTYPE,STOCKLMT,STOCKNO,ISMYRELATION,ISCUSTODIALBOX,ISPREFERENTIAL,PFENDDATE,ISVIP,VIPTYPE,VIPCODE,ISRSCUST, ISWGCCUST,ISAGENT,ISBADCUST,DEBTPERIOD,CSDCREATDATE,DEPOSITAMT,AVGFINACE,ISBLACKLIST,CREDRECORDOUT,CREDRECORDIN, CHECKCYCLE,CHECKSENDTYPE,CHECKSENDADDR,CUSTSTATE,CHANNELCODE,CUSTMGR,DEPTCODE,ORGCODE,INPUTER,INPUTDATE, remark,familymemerber, belongorg,belongorglncard,custided,regioncodeed,loadcardno,daybaramt,daybalcurrency, firstadmin,firstadmindept,secondadmin1,secondadmin1dept,secondadmin2,secondadmin2dept,custchater, workenddate, asset,assurerate,workdate ,intendincome,ecrsresult,spouseecrsresult, DEPTADDR,DEPTPOSTCODE,PROFESSION,EDUBACKGROUND,SOCIALNO,ISCHECK,custLevel,cardtype,cardno,officeDeptNo) values(?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?||?||?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?, ?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?)
2010-09-20 11:40:17 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27)- JakartaCommonsLoggingImpl: {pstm-100121} Executing Statement: insert into PI_CUSBASINFO(CUSTID,REGIONCODE,SUBTYPE,CREDLEVEL,ISSECRETCUST,CUSTNAME,OLDNAME,ENAMEEVER,FIRSTNAME,LASTNAME,BIRTHDAY,SEX,VOLK,ISCOUNTION, COUNTRY,LIWACODE,ORIGIN,OFFICEDEPT,DEPTPROPERTY,DEPTTRADE,DUTIES,APPOINTMENT,CUSTTITLE,JOBSTARTDATE,CURJOBSTART, BECOMEMYCUST,POLITICAL,HEALTH,EDUCATION,GRADUATION,ABIDANCE,HYMEN,FILIAL,MARROWNAME,MARROWCADTYPE,MARROWCADNO, MARROWJOBDEPT,MARROWTEL,LOANCARDNO,LOANCARDCHKDATE,FINANCIALNAME,LOANCARDPW,ISMYEMPLOYEE,ISMYSTOCKHOLDER, STOCKTYPE,STOCKLMT,STOCKNO,ISMYRELATION,ISCUSTODIALBOX,ISPREFERENTIAL,PFENDDATE,ISVIP,VIPTYPE,VIPCODE,ISRSCUST, ISWGCCUST,ISAGENT,ISBADCUST,DEBTPERIOD,CSDCREATDATE,DEPOSITAMT,AVGFINACE,ISBLACKLIST,CREDRECORDOUT,CREDRECORDIN, CHECKCYCLE,CHECKSENDTYPE,CHECKSENDADDR,CUSTSTATE,CHANNELCODE,CUSTMGR,DEPTCODE,ORGCODE,INPUTER,INPUTDATE, remark,familymemerber, belongorg,belongorglncard,custided,regioncodeed,loadcardno,daybaramt,daybalcurrency, firstadmin,firstadmindept,secondadmin1,secondadmin1dept,secondadmin2,secondadmin2dept,custchater, workenddate, asset,assurerate,workdate ,intendincome,ecrsresult,spouseecrsresult, DEPTADDR,DEPTPOSTCODE,PROFESSION,EDUBACKGROUND,SOCIALNO,ISCHECK,custLevel,cardtype,cardno,officeDeptNo) values(?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?||?||?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?, ?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?)
2010-09-20 11:40:17 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27)- JakartaCommonsLoggingImpl: {pstm-100121} Parameters: [2000500065, 0001, , , , 中文名称, , , , , 1972-09-15, 1, , 1, CHN, , , 工作单位。。。, 0005, M, 2, , , 2010-09-20, 2010-09-20, 2010-09-20, , , 80, , 4, 30, , , , , , , , 2010-09-20, , , , , , 0.0, , , , , 2010-09-20, , , , , , , , 0, 2010-09-20, 0.0, 0.0, 0, , , , , , 0, 0, 0, , y00000a7, 100000, , y00000a7, 2010-12-31, , 0, , , , , , 0.0, , , , , , , , 07, , 0.0, 0.0, , 0.0, , , , , 0006, 0002, , , , 4, 1234567890, ]
2010-09-20 11:40:17 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27)- JakartaCommonsLoggingImpl: {pstm-100121} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Date, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Date, java.sql.Date, java.sql.Date, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Date, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Double, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Date, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.sql.Date, java.lang.Double, java.lang.Double, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Double, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Double, java.lang.Double, java.lang.String, java.lang.Double, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String]
焊工0531 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangxiao_jiang 的回复:]
'0'||'0'||'0'--这个你要做什么?
[/Quote]

这 对应的是个 口径代码 char(4),每一位对应一个字典,有他们独立的意思。
wwwwb 2010-09-20
  • 打赏
  • 举报
回复
将在程序中的SQL语句贴出来看看,字符串过长?
yangxiao_jiang 2010-09-20
  • 打赏
  • 举报
回复
'0'||'0'||'0'--这个你要做什么?

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧