drno-reg
@drno-reg
см не кратко

Как правильно экранировать символы @ и # в пароле при описании URL к Oracle?

Здравствуйте.

Решил попробовать jaydebeapi для подключения к Oracle из Python

import jpype
import jaydebeapi
jHome = jpype.getDefaultJVMPath()
PASSWORD="\"user@#007\"";
connection_string="jdbc:oracle:thin:dboracle/"+PASSWORD+"@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=dbnew)))";
jpype.startJVM(jHome, '-Djava.class.path=D:\\lib\\jdbc\\ojdbc7.jar')
conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver',
                          connection_string)


в результате получаю ошибку

File "D:/Server/templates/Test/Oracle.py", line 18, in <module>
    connection_string)
  File "C:\Program Files\Python35\lib\site-packages\jaydebeapi\__init__.py", line 380, in connect
    jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)
  File "C:\Program Files\Python35\lib\site-packages\jaydebeapi\__init__.py", line 199, in _jdbc_connect_jpype
    return jpype.java.sql.DriverManager.getConnection(url, *dargs)
jpype._jexception.SQLRecoverableExceptionPyRaisable: java.sql.SQLRecoverableException: Ошибка ввода/вывода: NL <b>Exception was generated TNS-04603: Синтаксическая ошибка: Непредвиденный символ "#" при синтаксическом разборе alias</b>


Если я все верно понял, то с экранированием @ решить удалось, а что не так с #? либо есть другие варианты оформления подключения?
  • Вопрос задан
  • 1040 просмотров
Решения вопроса 1
drno-reg
@drno-reg Автор вопроса
см не кратко
решил проблему так

conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver',
                          connection_string,[USERNAME,PASSWORD])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Draconian
Oracle Developer
Отметили бы решение в предыдущем вопросе тогда. Тут такого не любят.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы