Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Inserindo um CLOB usando cx_Oracle


Existem algumas soluções possíveis:
  1. Atualize cx_Oracle. Não tenho certeza de qual versão você está usando, mas estou usando o python 2.7.2 com cx_Oracle 5.1 e não recebo nenhum erro ao inserir 150.000 caracteres em uma coluna CLOB sem usar setinputsizes.
  2. Como setinputsizes se aplica a cada uso subsequente do cursor, basta alterá-lo entre essas diferentes instruções cursor.execute.

por exemplo:
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)