Oracle
 sql >> Base de données >  >> RDS >> Oracle

Insertion d'un CLOB à l'aide de cx_Oracle

Il existe plusieurs solutions possibles :

  1. Mettre à niveau cx_Oracle. Je ne sais pas quelle version vous utilisez, mais j'utilise python 2.7.2 avec cx_Oracle 5.1 et je ne reçois aucune erreur lors de l'insertion de 150 000 caractères dans une colonne CLOB sans utiliser setinputsizes du tout.
  2. Étant donné que setinputsizes s'applique à chaque utilisation ultérieure du curseur, changez-le simplement entre ces différentes instructions cursor.execute.

ex :

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)