Oracle - INSERT más de 4000 characters - String literal too long

 
Vista:

INSERT más de 4000 characters - String literal too long

Publicado por Claudio (1 intervención) el 20/08/2014 14:44:05
Buenos días,

Estoy haciendo un insert en una tabla con un campo LONG.

estoy tratando de insertar alrededor de 19000 caracteres en dicho campo y me devuelve ORA-01704: string literal too long


INSERT INTO ]TG_FORMATODETALLE ( TG_FORMATODETALLE.CODFORMATODETALLE, TG_FORMATODETALLE.DESCFORMATODETALLE, TG_FORMATODETALLE.SQLSELECT, TG_FORMATODETALLE.SNTITULOS, TG_FORMATODETALLE.TIPOFORMATO, TG_FORMATODETALLE.SEPARADORTEXTO, TG_FORMATODETALLE.MASCARATEXTO, TG_FORMATODETALLE.FECALTA, TG_FORMATODETALLE.FECMODIFICACION, TG_FORMATODETALLE.ESTADO, TG_FORMATODETALLE.USUARIO, TG_FORMATODETALLE.GUIDSTAMP, TG_FORMATODETALLE.SNBORDES )
VALUES ( 'REPDEUDCLI', 'REPORTE DE DEUDA DE CLIENTE',<'field with 19000 characters'>, 'N', 'TABLA', NULL, NULL, TO_DATE('08/13/2014 06:23:23 PM', 'MM/DD/YYYY HH12:MI:SS AM'), TO_DATE('08/19/2014 01:08:39 PM', 'MM/DD/YYYY HH12:MI:SS AM'), 'M', 'AON_AR_20120714_DES', '2799E5081A9D6F4BA720D41A465F2847', 'S' )

Que puedo hacer??

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

INSERT más de 4000 characters - String literal too long

Publicado por luis (235 intervenciones) el 20/08/2014 18:14:37
Hola,

Que versión es la BD en la que estas trabajando?

Saludos

Luis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

INSERT más de 4000 characters - String literal too long

Publicado por luis (235 intervenciones) el 20/08/2014 18:25:08
Si tu BD es oracle 11g r1

Oracle dice:
---------------------------------------------------------------------------------------------------------
LONG Datatype

Note:
Do not create tables with LONG columns. Use LOB columns (CLOB, NCLOB) instead. LONG columns are supported only for backward compatibility.
Oracle also recommends that you convert existing LONG columns to LOB columns. LOB columns are subject to far fewer restrictions than LONG columns. Further, LOB functionality is enhanced in every release, whereas LONG functionality has been static for several releases.

Columns defined as LONG can store variable-length character data containing up to 2 gigabytes of information. LONG data is text data that is to be appropriately converted when moving among different systems.

LONG datatype columns are used in the data dictionary to store the text of view definitions. You can use LONG columns in SELECT lists, SET clauses of UPDATE statements, and VALUES clauses of INSERT statements.

---------------------------------------------------------------------------------------------------------

Saludos,

Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

INSERT más de 4000 characters - String literal too long

Publicado por Rodrigo Guarderas (1 intervención) el 21/12/2014 20:07:07
POr favor create un bloque plsql

declare

variable := <'field with 19000 characters'>;

begin

INSERT INTO ]TG_FORMATODETALLE ( TG_FORMATODETALLE.CODFORMATODETALLE, TG_FORMATODETALLE.DESCFORMATODETALLE, TG_FORMATODETALLE.SQLSELECT, TG_FORMATODETALLE.SNTITULOS, TG_FORMATODETALLE.TIPOFORMATO, TG_FORMATODETALLE.SEPARADORTEXTO, TG_FORMATODETALLE.MASCARATEXTO, TG_FORMATODETALLE.FECALTA, TG_FORMATODETALLE.FECMODIFICACION, TG_FORMATODETALLE.ESTADO, TG_FORMATODETALLE.USUARIO, TG_FORMATODETALLE.GUIDSTAMP, TG_FORMATODETALLE.SNBORDES )
VALUES ( 'REPDEUDCLI', 'REPORTE DE DEUDA DE CLIENTE',variable, 'N', 'TABLA', NULL, NULL, TO_DATE('08/13/2014 06:23:23 PM', 'MM/DD/YYYY HH12:MI:SS AM'), TO_DATE('08/19/2014 01:08:39 PM', 'MM/DD/YYYY HH12:MI:SS AM'), 'M', 'AON_AR_20120714_DES', '2799E5081A9D6F4BA720D41A465F2847', 'S' );

commit;


end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

INSERT más de 4000 characters - String literal too long

Publicado por Alfonso (1 intervención) el 01/09/2017 00:27:52
y si el error es en un select?

Estoy usando:

SELECT REGEXP_SUBSTR('LA CADENA ES MAYOR A 4000', '[^|]+', 1, LEVEL) AS codigo FROM dual
CONNECT BY REGEXP_SUBSTR('LA CADENA ES MAYOR A 4000', '[^|]+', 1, LEVEL) IS NOT NULL;

y me marca el error:

ORA-01704: literal de cadena demasiado largo

Alguna sugerencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

INSERT más de 4000 characters - String literal too long

Publicado por david alfonso (1 intervención) el 10/02/2021 15:39:56
amigo, pudiste encontrar solución para ese caso particular, me está pasando lo mismo, quedo atento. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar