Я пытаюсь подключиться к базе данных, используя cx_Oracle в Python. вот как я это делаю:
connection = cx_Oracle.connect("user", "pass", "service")
Я могу подключиться к базе данных с помощью разработчика sql с теми же учетными данными, но когда я пытаюсь подключиться с python, он выдает ошибку:
ORA-12154: TNS:could not resolve the connect identifier specified.
Я попробовал то же самое из другой системы, и я могу подключиться к базе данных с помощью cx_Oracle
. Содержимое файла TNSNames.ora одинаково в обеих системах.
Я удалил все и установил снова, надеясь избавиться от ошибок, которые я мог сделать в первый раз, но я все еще сталкиваюсь с той же ошибкой.
Пожалуйста, дайте мне знать, есть ли способ это исправить.
Спасибо.
Вместо этого вы можете попробовать использовать EZ connect или использовать cx_Oracle.makedsn()
для создания строки подключения. Если вы предоставите содержимое вашего файла tnsnames.ora, я могу дать более подробный ответ.
Я понял, что пошло не так. База данных использует файл LDAP. А в файле SQLNET.ORA LDAP не упоминался, что и вызвало у меня ошибку. Простое добавление LDAP к NAMES.DIRECTORY_PATH в SQLNET.ORA решило эту проблему для меня.
Я попытался использовать dsn_tns = cx_Oracle.makedsn('localhost','port',service_name='service_name') conn = cx_Oracle.connect(user='user_name',password='password',dsn = dsn_tns), но я все еще получил ту же ошибку. параметры, используемые в makedsn, взяты из файла tnsnames.ora.