#db2 #db2-zos
#db2 #db2-zos
Вопрос:
Я вызываю хранимую процедуру, которая создана в DB2 для Z / OS из Java.
Я хочу вызвать хранимую процедуру без использования имени схемы.
Я не использую schema name для всех других SQLL, задав currentSchema
свойство datasource.
Я узнал, что для хранимой процедуры я должен установить 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(&roup: 'com.ibm.db2.jcc', name: 'db2jcc4', version: '4.24.92')
Версия DB2: 12
Кто-нибудь знает, это известная проблема или я что-то пропустил?
Ответ №1:
Имейте в виду разницу между специальными регистрами (такими как путь к текущей функции) и свойствами подключения / сеанса jdbc.
В вашей строке подключения вы можете указать специальные регистры и их значение, используя определенный синтаксис.
Специальным регистром является «CURRENT_PATH», а синтаксис определен здесь.
Пример фрагмента строки подключения:
… ;specialRe&isters=CURRENT_PATH=CURRENT CLIENT_USERID=x,SYSIBM;
где x — это схема, которая содержит ваш sproc.
Вы можете установить значение специальных регистров в соответствии с вашими потребностями, тщательно протестируйте его со всеми вашими обычными вызовами, особенно если у вас настроена мультисхема.
Вы также можете установить специальные регистры после подключения к базе данных, при условии сохранения синтаксиса, хотя в этом случае это ограничивает вас установкой одного значения для каждого специального регистра за раз, если вы не используете DB2DataSource.setSpecialRe&isters
интерфейс. Обратитесь к ссылке выше для получения подробной информации.
Комментарии:
1. Строка подключения создается внутри пользовательской платформы. Для этого требуются изменения в этой пользовательской библиотеке. Но у нас есть возможность установить свойства источника данных. Вот почему я ищу свойство datasource way. Кстати, почему currentFunctionPath не работает?
2. Следуйте инструкциям по ссылке в ответе. Специальные регистры обрабатываются отдельно от обычных свойств.
3. В вашей ссылке говорится о подключении Drivermana&er. Мой вопрос в том, почему свойство currentFunctionPath не работает для моего источника данных ibm.com/support/producthub/db2/docs/content/SSEPGG_11.5.0 /…
4. Возможно, потому, что это свойство относится к специальным регистрам Db2-LUW, но не Db2-for-Z / OS.
5. Сработал currentFunctionPath !!! .. Он не был настроен должным образом из-за моей пользовательской платформы