使用jdbc的DB2 SQL异常代码440

时间:2014-10-24 18:40:59

标签: java jdbc db2

我试图从我的java代码调用存储过程,我得到一个sql异常。 这是我的代码片段

 CallableStatement cstmt = conn.prepareCall("{call stroredprocname(?,?,?)}");
                cstmt.setString(1, filePattern);
                cstmt.setString(2, fromDate);
                cstmt.setString(3, toDate);

                ResultSet resultSet = cstmt.executeQuery();

这是我得到的错误代码:

com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -440, SQLSTATE: 42884, SQLERRMC: stroredprocname;PROCEDURE
    at com.ibm.db2.jcc.c.tf.e(tf.java:1680)
    at com.ibm.db2.jcc.c.tf.a(tf.java:1239)
    at com.ibm.db2.jcc.b.jb.h(jb.java:139)
    at com.ibm.db2.jcc.b.jb.d(jb.java:71)
    at com.ibm.db2.jcc.b.w.d(w.java:54)
    at com.ibm.db2.jcc.b.cc.i(cc.java:208)
    at com.ibm.db2.jcc.c.tf.o(tf.java:1236)
    at com.ibm.db2.jcc.c.uf.ib(uf.java:1831)
    at com.ibm.db2.jcc.c.uf.d(uf.java:2296)
    at com.ibm.db2.jcc.c.vf.Z(vf.java:159)
    at com.ibm.db2.jcc.c.vf.execute(vf.java:142)
    at MyClass(MyClass.java:102)

有些人可以帮帮我吧!提前谢谢!

1 个答案:

答案 0 :(得分:0)

错误定义440-无法找到商店过程位置,这意味着您错过了案例中的模式名称。

请在过程名称前添加模式名称,例如:

CallableStatement cstmt = conn.prepareCall(“{call schemaname.stroredprocname(?,?,?)}”);

第2期错误313 - pl / sql查询与Java代码之间的参数不匹配。