![](/img/trans.png)
[英]Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException while executing query in DB2
[英]strange DB2 Exception while executing queries
我正在运行一些DB2查询,然后再调用PL sql过程
程序的调用是
CallableStatement callStmt = con.prepareCall( //
"CALL INIT_PAYROLL(?,?,?,?,?,?,?,?,?,?)");
// Set IN parameters
callStmt.setString(1, start_date);//IN
callStmt.setString(2, end_date); //IN
callStmt.setInt(3, customer_id);//IN
callStmt.setString(4, payrollMain_id+"");//IN
callStmt.setString(5, ruleFreq );//IN
callStmt.setInt(6, 0);
callStmt.setString(7, outerArray);//IN
callStmt.setString(8, commsSepEmps);//IN
callStmt.setInt(9, isIncremental);
callStmt.registerOutParameter (10, Types.VARCHAR);
//Call the procedure
callStmt.executeUpdate();
toReturnStatus = callStmt.getString(10);
System.out.println("OutPutResult-- : " + toReturnStatus);
但是我面临一些奇怪的问题。 我不知道为什么会这样。
另一个问题是,如果我从Java文件中调用此过程,并且如果PLSql过程中发生异常,该异常是否将打印为DB2异常?
错误:
[2/27/15 17:00:15:778 IST] 0000280f SystemErr R com.ibm.db2.jcc.am.SqlDataException: DB2 SQL Error: SQLCODE=-433, SQLSTATE=22001, SQLERRMC=129727:12068,133389:12069,133390:12070,133391:12071,133393:1, DRIVER=3.62.56
在此错误129727:12068中,是employee_id:primaryKeyOFtable,
编辑 :SP不会在任何情况下都给问题,我在SP中传递逗号分隔的employeeId,仅当它超过某个特定的限制/长度时,它会失败并给出此错误。
编辑我解决/发现了错误,实际上我正在传递长度超过定义的VarChar限制的字符串。 :)
22001表示字符数据,发生了右截断; 例如,更新或插入值是对于该列而言太长的字符串,或者由于它太小而无法将日期时间值分配给主机变量。
这是具有不同DB2错误代码的链接https://urssanj00.wordpress.com/2008/03/04/db2-sql-error-code-and-description/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.