Ich verwende SQLAlchemy CORE (1.0.12) auf Python 3.5, um eine Verbindung mit der Oracle-Datenbank meiner Organisation herzustellen. Meine Datenbankskripte funktionierten ohne Probleme, bis meine Organisation die Oracle-Datenbank von 11g auf 12c aktualisierte. Nach dem Upgrade liefere ich häufig den folgenden Fehler, wenn ich versuche, Daten in vorhandene Tabellen einzufügen.SQLAlchemy und Oracle 12c Verbindungsprobleme
sqlalchemy.exc.OperationalError: (cx_Oracle.OperationalError) ORA-03135: connection lost contact
Process ID: 10355
Session ID: 184 Serial number: 60376
Ich habe keine der SQLAlchemy Skripten ändern während der Aktualisierung und der Fehler nicht immer auftreten, in der Regel nur geschieht, wenn ich große Datensätze einzufügen versuche. Ich habe Probleme im Zusammenhang mit dem ORA-03135 Fehlercode untersucht und bestätigt, dass ich keine Firewall-Probleme (ich bin in der Lage, manchmal zu verbinden) oder Timeouts (Fehlermeldung erscheint innerhalb von Sekunden, die viel zu früh für Timeout ist).
Hat jemand anderes dieses Problem und eine Lösung gefunden?
Traceback (most recent call last):
File "C:\ross\repository\Analytics\OptTekSQL\run.py", line 5, in <module>
'Demand Analysis 8/17/16')
File "C:\ross\repository\Analytics\OptTekSQL\optsql\data_load.py", line 43, in demand_output_load
s.insert_df(df, 'ACCDC_DEMAND_OUTPUTS')
File "C:\ross\repository\Analytics\OptTekSQL\optsql\base.py", line 38, in insert_df
self.eng.connect().execute(ins, data)
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\engine\base.py", line 914, in execute
return meth(self, multiparams, params)
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\sql\elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\engine\base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\engine\base.py", line 1146, in _execute_context
context)
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\engine\base.py", line 1341, in _handle_dbapi_exception
exc_info
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\util\compat.py", line 200, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\util\compat.py", line 183, in reraise
raise value.with_traceback(tb)
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\engine\base.py", line 1116, in _execute_context
context)
File "C:\Users\palmer\AppData\Local\Continuum\Anaconda2\envs\py3\lib\site-packages\sqlalchemy\dialects\oracle\cx_oracle.py", line 964, in do_executemany
cursor.executemany(statement, parameters)
Haben Sie Oracle Client-Bibliotheken auf dem laufenden Python-Computer aktualisiert? –
Hoppla, habe ich nicht obwohl ein Update auf SQLAlchemy 1.1 scheint den Trick für jetzt getan. Ich werde versuchen, den Client zu aktualisieren –
Hinweis: Ich habe meine Oracle-Clients aktualisiert, aber immer noch die Probleme, jeder hat eine Lösung? –