1
春JdbcTemplateで、Javaからは、春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") });
をAS400/DB2のストアドプロシージャにアクセスしようとすると、私は次のエラー
[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.
私はスキーマを追加しようとしましたが、それは助けになりません – SJS
もう一つのアイデアはおそらくあなたのプロシージャは、特定のデータ型が来ることを期待している、そして春は別のタイプとしてそれを送信していますか?この場合、パラメータに 'CAST(?AS type)'を追加することができます。時には、DB2はプロシージャー内のデータ・タイプについて厄介なことがあります。 – bhamby
ガラドールにも感謝しました:( – SJS