我尝试从 java 应用程序调用 DB2 存储过程并收到以下错误:
Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][10453][12711][4.22.29] Cannot get the describe information for the calling stored procedure with name XXXXXXXX and path ' SYSIBM , SYSFUN , SYSPROC , SYSIBMADM , WSTCFS1 ' ERRORCODE=-4472, SQLSTATE=null
我找到了此错误的解释和解决方案(搜索-ERRORCODE=-4472),但没有多大意义。
这是我正在使用的驱动程序版本:
<dependency>
<groupId>com.ibm.db2.jcc</groupId>
<artifactId>db2jcc4</artifactId>
<version>11.1.1.1</version>
</dependency>
从 IBM Data Studio 调用相同的存储过程效果很好。
您需要在类路径中同时包含
db2jcc4.jar
和 db2jcc_license_cisuz.jar
才能进行连接。此外,必须授予您要访问的表模式的用户/密码。
您可以在安装 Db2 的 z/OS 映像中的 Unix 系统服务下找到这两个文件。不需要存储库,并且文件与您要访问的 Db2 版本非常匹配,这就是您需要联系 DBA 的原因。