如何解决currentFunctionPath属性不适用于我的Java存储过程
我正在从Java调用在DB2 for Z / OS中创建的存储过程。
我想在不使用架构名称的情况下调用存储过程。
我没有通过设置currentSchema
数据源属性来为所有其他SQL使用架构名称。
我知道对于存储过程,我必须设置currentFunctionPath
属性。但这是行不通的。我遇到了以下异常情况:
Caused by: com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-805,SQLSTATE=51002,SQLERRMC=DB2T.MYSCHEMA.SYSSTAT.5359534C564C3031;DISTSERV;04,DRIVER=4.24.92
我使用的 Db2驱动程序:compile(group: 'com.ibm.db2.jcc',name: 'db2jcc4',version: '4.24.92')
DB2版本:12
有人知道这是一个已知问题,还是我错过了什么?
解决方法
请注意特殊寄存器(例如当前函数路径)和jdbc连接/会话属性之间的区别。
在连接字符串中,您可以使用特定语法指定特殊寄存器及其值。
特殊寄存器为“ CURRENT_PATH”,语法定义为here。
连接字符串的示例:
... ;specialRegisters=CURRENT_PATH=CURRENT CLIENT_USERID=x,SYSIBM;
其中x是包含您的存储过程的架构。
您可以根据需要设置特殊寄存器的值,并在所有例行调用中仔细进行测试,尤其是在具有多模式设置的情况下。
您还可以在连接到数据库之后设置特殊寄存器,只要您保留语法即可,尽管在这种情况下,除非您使用{{1},否则每次只能为每个特殊寄存器设置一个值。 }界面。有关详细信息,请参见上面的链接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。