cx_Oracle не подключается при использовании SID вместо имени службы в строке подключения

У меня есть строка подключения, которая выглядит так

con_str = "myuser/[email protected]:1521/ora1"

кудаora1 это SID моей базы данных. Использование этой информации в SQL Developer работает нормально, это означает, что я могу подключаться и запрашивать без проблем.

Тем не менее, если я пытаюсь подключиться к Oracle, используя эту строку, это не удается.

cx_Oracle.connect(con_str)

DatabaseError:  ORA-12514:  TNS:listener  does  not  currently  know  of  service  requested  in  connect  descriptor

Этот формат строки соединения работает, еслиora1 это имя службы, хотя

Я видел другие вопросы, которые, кажется, имеют обратную сторону моей проблемы (она работает с SID, но не с именем службы)

Использование имен сервисов Oracle с SQLAlachemyOracle SID и имя службы; проблемы с подключениемcx_Oracle & Подключение к БД Oracle удаленно

Как правильно подключиться к Oracle, используяcx_Oracle, используяSID а не название сервиса? Как мне это сделать без необходимости настройкиTNSNAMES.ORA файл? Мое приложение распространяется среди многих пользователей внутри страны и вносит изменения вTNSNAMES Файл не идеален при работе с пользователями без прав администратора на их компьютерах с Windows. Кроме того, когда я использую имя службы, мне вообще не нужно трогать этот файл, и он хотел бы, чтобы он сохранялся таким образом.

Ответы на вопрос(6)

Ваш ответ на вопрос