Я попытался подключиться к моей 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?