ошибка тайм-аута при использовании asqalchemy для подключения к oracle для сохранения pandas DF в таблице oracle - PullRequest
0 голосов
/ 28 апреля 2020

Я попытался подключиться к моей oracle дБ в python.

. Чтобы получить данные или создать таблицу, я использовал cx_ Oracle, и она работает.

dsn_tns = cx_Oracle.makedsn(myhost, port, myservice)
cnxn = cx_Oracle.connect(myuser, mypassword, dsn_tns)

Для сохранить pandas DF в oracle таблице, я использовал sqlalchemy (из-за того, что cx_ Oracle не работает для сохранения в oracle).

df.to_sql(name='target_table',con=engine ,if_exists = 'replace')

Поэтому я создаю движок (я пробовал несколько иначе, но все они заканчиваются одной и той же ошибкой)

engine = sqlalchemy.create_engine('oracle+cx_oracle://%s:%s@%s:%s' % (myuser, mypassword, myhost, port), 
                                  max_identifier_length=128)

, когда я пытался подключиться

conn = engine.connect()

Я получил

DatabaseError: (cx_Oracle.DatabaseError) ORA-12170: TNS:Connect timeout occurred
(Background on this error at: http://sqlalche.me/e/4xp6)

Но с помощью cx_ Oracle У меня не было проблемы с тайм-аутом, и я успешно получил таблицу для pandas DF, и я создаю и удаляю таблицы по этому соединению.

Есть идеи, что можно исправить? Любой другой способ сохранить DF или CSV-файл в таблицу oracle, используя код python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...