URL JDBC DB2 с разделенным запятыми списком currentFunctionPath - PullRequest
0 голосов
/ 19 декабря 2018

Я чувствую, что это должно быть чрезвычайно просто, и все же по какой-то причине я просто не могу найти ответ нигде.

Я настраиваю DataSource, у которого не так много настроек для свойств, которые я хочу установить.В результате я использую URL-адрес jdbc для передачи некоторых свойств соединения в приложение.

Мне нужно установить currentFunctionPath со списком схем через запятую.Обычно этого можно достичь, запустив следующий sql:

set path ASCHEMA, ANOTHERSCHEMA, YETANOTHERSCHEMA; 

Но мне нужно, чтобы это было так для всех моих соединений в приложении, поэтому я хочу использовать следующий URL-адрес jdbc:

jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath=ASCHEMA,ANOTHERSCHEMA,YETANOTHERSCHEMA;

Однако всякий раз, когда я делаю это, я получаю сообщение об ошибке синтаксиса URL, и кажется, что он всегда прекращает чтение строки, как только доходит до первой запятой в моем списке путей, разделенных запятыми.

Я пробовал & s, и кавычки, и двойные кавычки и т. Д., Но я просто не могу понять, как заставить это работать.

Кто-нибудь знает, как это сделать?

Спасибо!

Примечание. Причина, по которой мне нужно это сделать, заключается в вызове хранимых процедур, которые вызывают другие хранимые процедуры, которые не полностью квалифицированы.Я не могу изменить эти хранимые процедуры, чтобы сделать их полностью квалифицированными.

Ошибка:

Invalid database URL syntax: jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath=ASCHEMA. ERRORCODE=-4461, SQLSTATE=42815

1 Ответ

0 голосов
/ 19 декабря 2018

Итак, как оказалось, DB2 вообще не ненавидела разделенный запятыми список currentFunctionPath.

Фактически я передавал URL-адрес jdbc из файла свойств.Когда Java извлекла URL-адрес jdbc из файла свойств, свойство заканчивалось запятой.Я проверил это, выполнив System.out.println (theurl) для URL.

Все, что мне нужно было сделать, это экранировать запятые с помощью обратной косой черты (\), чтобы java на самом деле правильно обрабатывал свойство.Тогда все работало как обычно.

jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath=ASCHEMA\,ANOTHERSCHEMA\,YETANOTHERSCHEMA;

Я рад, что это решено!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...