Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Einfügen eines CLOBs mit cx_Oracle

Es gibt einige mögliche Lösungen:

  1. Aktualisieren Sie cx_Oracle. Ich bin mir nicht sicher, welche Version Sie verwenden, aber ich verwende Python 2.7.2 mit cx_Oracle 5.1 und erhalte keine Fehler, wenn ich 150.000 Zeichen in eine CLOB-Spalte einfüge, ohne überhaupt setinputsizes zu verwenden.
  2. Da setinputsizes für jede nachfolgende Cursorverwendung gilt, ändern Sie es einfach zwischen diesen verschiedenen cursor.execute-Anweisungen.

zB:

cursor = connection.cursor()
cursor.setinputsizes(FOO=None, BAR=None)
cursor.execute("INSERT INTO myTable (FOO, BAR) VALUES (:FOO, :BAR)", 
FOO=val1,  BAR=val2)
cursor.setinputsizes(HERP = cx_Oracle.CLOB)
cursor.execute("INSERT INTO myTable2 (HERP) VALUES (:HERP)", HERP=val3)