Java 使用jdbc的DB2SQL异常代码440

Java 使用jdbc的DB2SQL异常代码440,java,jdbc,db2,Java,Jdbc,Db2,我试图从java代码中调用一个存储过程,但得到了一个sql异常。 这是我的代码片段 CallableStatement cstmt = conn.prepareCall("{call stroredprocname(?,?,?)}"); cstmt.setString(1, filePattern); cstmt.setString(2, fromDate); cstmt.setString(3,

我试图从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)

请帮我个忙!提前谢谢

错误定义440-找不到存储过程位置,这意味着您遗漏了案例中的架构名称

请在过程名称之前添加架构名称,例如:

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

第二个问题错误313-PL/SQL查询和Java代码之间的参数不匹配。

您是否在db中测试(编译)了PL/SQL本身?上述错误意味着它找不到存储过程。如果编译正确,则我确信您必须提供架构名称和过程名称,例如:call schemaname.stroredprocname(?,?)是的,我是在数据库中编译的。我也尝试过给出模式名称,但现在它给了我一个类似这样的错误:com.ibm.db2.jcc.c.SqlException:db2sql错误:SQLCODE:-313,SQLSTATE:07001,SQLERRMC:null在com.ibm.db2.jcc.c.tf.d(tf.java:1396)在com.ibm.db2.jcc.b.jb.l(jb.java:367)在com.ibm.db2.jcc.b.jb.e(jb.java:92)在com.ibm.db2.jcc.b.w.e(w:72)com.ibm.db2.jcc.b.cc.h(cc.java:203)com.ibm.db2.jcc.c.tf.q(tf.java:1363)com.ibm.db2.jcc.c.uf.d(uf.java:2388)com.ibm.db2.jcc.c.vf.X(vf.java:188)com.ibm.db2.jcc.c.vf.executeQuery(vf.java:171)很好,请在调用store proc时找到模式名称并添加到代码中,正如我在回答中提到的。它将像charm一样工作。您的查询是什么样子的?你能检查一下参数吗?最有可能的参数不匹配?嗨,Lokesh。非常感谢您如此及时地回答我的问题!我可以知道您是否有错误代码的参考资料以及它们的含义吗?我通过更正参数解决了错误313现在我得到了这个com.ibm.db2.jcc.c.SqlException:db2sql错误:SQLCODE:-302,SQLSTATE:22001,SQLERRMC:nullWell你可以看到最后它说null,其次,你也可以用谷歌搜索一些错误代码,这会给你一些线索。如果答案解决了你的问题,请投票并标出答案。我也是一个新的开发人员,经常学习和分享我对堆栈溢出的知识。这个新错误是因为插入数据库表列的数据大于指定的列长度。参考链接。为了解决这个问题,请转到数据库并增加列的长度。我想您正在尝试向数据库中插入一些内容?