URL-адрес JDBC DB2 с разделенным запятыми списком currentFunctionPath

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

Я настраиваю 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

Вы пробовали, currentFunctionPath = "ASCHEMA,ANOTHERSCHEMA,YETANOTHERSCHEMA"‌​;?

user2004685 18.12.2018 22:32

@ user2004685 Да, конечно. Я просто попробовал еще раз. Я получаю следующее сообщение об ошибке: Invalid database URL syntax: jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;curr‌​entFunctionPath = "ASC‌​HEMA. ERRORCODE=-4461, SQLSTATE=42815 at org.springframework.jdbc.datasource.DataSourceUtils.getConne‌​ction(DataSourceUtil‌​s.java:80) Как видите, ошибка резко прекращается на первой запятой. Не любит запятых.

Miss Kitty 18.12.2018 22:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
663
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

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

Другие вопросы по теме