2013-06-03 259 views
-1

调用在大型机DB2中写入的存储过程XXXX时出现以下错误。在这个存储过程中,我们为'java.sql.CHAR“和”java.sql.VARCHAR“类型参数传递'GRAPHIC'&'LONGGRAPHIC'参数。com.ibm.db2.jcc.c.SqlException:DB2 SQL错误:SQLCODE:-444,SQLSTATE:42724

INFO: SQLErrorCodes loaded: [DB2, Derby, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase] 
     Exception while executing Test Case 
org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback; bad SQL grammar [{call SYSPROC.XXXX(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}]; nested exception is com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -444, SQLSTATE: 42724, SQLERRMC: XXXX 
Caused by: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -444, SQLSTATE: 42724, SQLERRMC: XXXX 
    at com.ibm.db2.jcc.c.tf.d(tf.java:1396) 
    at com.ibm.db2.jcc.b.jb.l(jb.java:367) 
    at com.ibm.db2.jcc.b.jb.e(jb.java:92) 
    at com.ibm.db2.jcc.b.w.e(w.java:72) 
    at com.ibm.db2.jcc.b.cc.h(cc.java:203) 
    at com.ibm.db2.jcc.c.tf.q(tf.java:1363) 
    at com.ibm.db2.jcc.c.uf.d(uf.java:2388) 
    at com.ibm.db2.jcc.c.vf.Z(vf.java:159) 
    at com.ibm.db2.jcc.c.vf.execute(vf.java:142) 
    at org.springframework.jdbc.core.JdbcTemplate$5.doInCallableStatement(JdbcTemplate.java:906) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:872) 
    at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:904) 
    at org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:113) 
    at com.cst.test.common.SPCall.execute(SPCall.java:73) 
    at com.cst.test.daoLayer.SPTest.testLogic(SPTest.java:71) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:618) 
    at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99) 
    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81) 
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) 
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) 
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45) 
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66) 
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) 
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) 
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) 
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 
    Failed Test Case Count : 0 

回答

2

SQL代码-444表示未找到从存储过程调用的外部程序。名称不正确,或程序链接不正确。

此处了解详情:http://pic.dhe.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2z9.doc.codes/src/tpc/n444.htm

+0

感谢,这个错误被解决。根本原因是==>“如果EXTERNAL_NAME列值是正确的,请使用MVS链接编辑器在您的安装程序用于存储过程的一个MVS加载库中创建所需的MVS加载模块。” – Raj

相关问题