Проблемы с подключением к экземпляру данных Oracle с Python - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь подключиться к экземпляру Oracle Data (ORAD) с помощью скрипта Python.

Вот основной скрипт:

import cx_Oracle
conn = cx_Oracle.connect("username/password@//server:1560/orad")
c = conn.cursor()
c.execute('select distinct * from table1')
for row in c:
   print(row)
conn.close()

В настоящее время у меня есть экземпляры port, SID и hostname, если это помогает.

Запуск этого скрипта приводит к: cx_Oracle.DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor ошибке,
при использовании других соединений (которые закомментированы) выдает ошибку SyntaxError: invalid syntax

Я не уверен в том, что я делаю неправильно. Я проверил мой TNSNAMES.ORA файл, который содержит несколько ifile ссылок на защищенные DBA (у меня нет доступа к просмотру или редактированию) других файлов.

Я просмотрел это сообщение и это сообщение , но у меня нет IP, только имя хоста.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 29 апреля 2019

Сработал следующий ответ и скрипт:

def get_data(database, username, password, sql_statement):
    import cx_Oracle
        dsn_tns = cx_Oracle.makedsn('<server>', '<port>', '<sid>')
        connection = cx_Oracle.connect(username, password, dsn_tns)

    c = connection.cursor()
    c.execute(sql_statement)

    # Print the returning dataset
    for row in c:
        print(row)

    # Close the connection
    connection.close()
...