Я чувствую, что это должно быть предельно просто, но по какой-то причине я просто нигде не могу найти ответ.
Я настраиваю 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
@ user2004685 Да, конечно. Я просто попробовал еще раз. Я получаю следующее сообщение об ошибке: Invalid database URL syntax: jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath = "ASCHEMA. ERRORCODE=-4461, SQLSTATE=42815 at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
Как видите, ошибка резко прекращается на первой запятой. Не любит запятых.
Итак, как выяснилось, DB2 вовсе не ненавидела разделенный запятыми список currentFunctionPath.
Фактически, я передавал URL-адрес jdbc из файла свойств. Когда Java извлекла URL-адрес jdbc из файла свойств, он заканчивал свойство запятой. Я проверил это, выполнив System.out.println (theurl) по URL-адресу.
Все, что мне нужно было сделать, это экранировать запятые с помощью обратной косой черты (\), чтобы java действительно правильно извлекал свойство. Потом все заработало как обычно.
jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath=ASCHEMA\,ANOTHERSCHEMA\,YETANOTHERSCHEMA;
Я рад, что это решено!
Вы пробовали,
currentFunctionPath = "ASCHEMA,ANOTHERSCHEMA,YETANOTHERSCHEMA";
?