sql >> Base de Datos >  >> RDS >> Oracle

Insertar un CLOB usando cx_Oracle

Hay algunas soluciones posibles:

  1. Actualice cx_Oracle. No estoy seguro de qué versión está usando, pero estoy usando python 2.7.2 con cx_Oracle 5.1 y no obtengo ningún error al insertar 150 000 caracteres en una columna CLOB sin usar setinputsizes en absoluto.
  2. Dado que setinputsizes se aplica a cada uso posterior del cursor, simplemente cámbielo entre estas diferentes instrucciones cursor.execute.

por ejemplo:

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)