Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用SpringJDBCTemplate从Java访问AS400/DB2存储过程_Java_Spring_Db2_Jdbctemplate - Fatal编程技术网

尝试使用SpringJDBCTemplate从Java访问AS400/DB2存储过程

尝试使用SpringJDBCTemplate从Java访问AS400/DB2存储过程,java,spring,db2,jdbctemplate,Java,Spring,Db2,Jdbctemplate,试图使用Spring JdbcTemplate从Java访问AS400/DB2存储过程 XmlBeanFactory beanFactory2 = new XmlBeanFactory(new ClassPathResource( "datasource_as400.xml")); DataSource ds2 = (DataSource) beanFactory2.getBean("dataSource"); jdbc2 = n

试图使用Spring JdbcTemplate从Java访问AS400/DB2存储过程

XmlBeanFactory beanFactory2 = new XmlBeanFactory(new ClassPathResource(
                "datasource_as400.xml"));
        DataSource ds2 = (DataSource) beanFactory2.getBean("dataSource");

        jdbc2 = new JdbcTemplate(ds2);

        jdbc2.update("{CALL TESTONE(?)}", new Object[] { new String("JOHN") });
我得到了以下错误

[DEBUG,SQLErrorCodeSQLExceptionTranslator] Translating SQLException with SQL state '42704', error code '-204', message [[SQL0204] TESTONE in  type *N not found.]; SQL was [{CALL TESTONE(?)}] for task [PreparedStatementCallback]
[FATAL,MainBatch] processDonations(): org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [{CALL TESTONE(?)}]; nested exception is java.sql.SQLException: [SQL0204] TESTONE in  type *N not found.
根据,SQLCODE
-204
表示检测到未定义的对象或约束名称。

您可能需要指定函数所在的架构。(即,
调用您的_SCHEMA.TESTONE(?)


如果它在另一个程序中工作(或当您手动查询时),您的模式路径可能会设置为不同的路径。您可以通过执行
从SYSIBM.SYSDUMMY1
中选择当前_模式进行检查(我不确定
SYSIBM.SYSDUMMY1
是否在iSeries上,或者虚拟表是否有另一个名称…我习惯于z/OS或Linux/Unix/Windows DB2)。

另一个想法可能是您的过程希望出现某种数据类型,Spring将它作为另一种类型发送进来?在这种情况下,您可以向参数中添加一个
CAST(?AS type)
。有时DB2可能会对过程中的数据类型很挑剔。