2012-01-10 130 views
14

Quiero insertar datos de gran tamaño con una longitud de más de 10.000 caracteres. Usé el tipo de datos CLOB en cada columna. No se puede insertar/actualizar tan grande de datos que muestra el error siguiente:¿Cómo insertar/actualizar un tamaño mayor de datos en las tablas de Oracle?

ORA-01704: string literal too long 

Mi código

insert into table1 value(1,'values>10000'); 
+2

¿Qué aplicación usas para insertar/actualizar datos? SQL * Plus, PHP, Java, ...? ¿Puedes publicar tu código? En [Realizar operaciones de cadena básicas en CLOB] (http://www.java2s.com/Tutorial/Oracle/0660__Large-Objects/PerformingbasicsstringoperationsonCLOBs.htm) puede ver una muestra. – danihp

+0

oracle SQL * plus 10g –

+0

Eche un vistazo al enlace anterior. Puede ser un buen punto de partida. – danihp

Respuesta

21

Vas a tener que asignar el valor a una variable & utilizar la variable para insertar los datos

DECLARE 
    v_long_text CLOB; 
BEGIN 
    v_long_text := 'your long string of text'; 

    INSERT INTO table 
    VALUES  (1, 
       v_long_text); 
END; 

para que quede claro: existen límites establecidos para las cadenas de caracteres:

no se puede tener una cadena literal más

  • 4000 bytes en SQL
  • 32k en PLSQL

Si quieres ir por encima de esto, usted tiene que utilizar variables de enlace.

+0

Gracias sathya pero si es 3,00,000 o mayor, muestra de nuevo error como ORA-06550 PL-sql-00172: cadena literal demasiado larga –

+0

Por favor, da algunos consejos para usar variables de vinculación –

+0

Buscar usando Google, encontrarás muchos ejemplos http://www.java2s.com/Tutorial/Oracle/0440__PL-SQL-Statements/UsingMultipleBindVariables.htm http://psoug.org/reference/bindvars.html @ManoharKulanthaivel – Sathya

Cuestiones relacionadas