too ora long literal largo example demasiado cadena oracle codeigniter clob nclob

oracle - long - ora-01704 literal de cadena demasiado largo



Error: ORA-01704: cadena literal demasiado larga (3)

¿Qué estás usando cuando operas con CLOB?

En todos los eventos, puedes hacerlo con PL / SQL

DECLARE str varchar2(32767); BEGIN str := ''Very-very-...-very-very-very-very-very-very long string value''; update t1 set col1 = str; END; /

Enlace de prueba en SQLFiddle

Mientras intento establecer el valor de más de 4000 caracteres en un campo que tiene el tipo de datos CLOB , me da este error:

ORA-01704: cadena literal demasiado larga.

Cualquier sugerencia, qué tipo de datos sería aplicable para mí si tuviera que establecer el valor de caracteres ilimitados, aunque para mi caso, resulta ser de unos 15000 caracteres.

Nota: La cadena larga que intento almacenar está codificada en ANSI.


Intenta dividir los personajes en varios fragmentos como la consulta a continuación e intenta:

Insert into table (clob_column) values ( to_clob( ''chunk 1'' ) || to_clob( ''chunk 2'' ) );

Funcionó para mí


La división funciona hasta 4000 caracteres según los caracteres que está insertando. Si está insertando caracteres especiales, puede fallar. La única forma segura es declarar una variable.