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},否则每次只能为每个特殊寄存器设置一个值。 }界面。有关详细信息,请参见上面的链接。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...