que - ¿Cómo escribir el script de inserción de Oracle con un campo como CLOB?
opex oracle (1)
Quiero crear un script de inserción que se usará solo para insertar un registro en una tabla.
Tiene 5 columnas y una de ellas es de tipo CLOB.
cada vez que lo intento dice que no puedo insertar la cadena es tan larga. más grande que 4000
Necesito una declaración de inserción con clob como un campo.
INSERT INTO tbltablename
(id,
NAME,
description,
accountnumber,
fathername)
VALUES (1,
N''Name'',
clob''some very long string here, greater than 4000 characters'',
23,
''John'') ;
Por favor aconséjame.
Tenga en cuenta que las cadenas de SQL no pueden tener más de 4000 bytes, mientras que Pl / SQL puede tener cadenas de hasta 32767 bytes. vea a continuación un ejemplo de cómo insertar una cadena grande a través de un bloque anónimo que creo que hará todo lo que necesita hacer.
nota que cambié el varchar2 (32000) a CLOB
set serveroutput ON
CREATE TABLE testclob
(
id NUMBER,
c CLOB,
d VARCHAR2(4000)
);
DECLARE
reallybigtextstring CLOB := ''123'';
i INT;
BEGIN
WHILE Length(reallybigtextstring) <= 60000 LOOP
reallybigtextstring := reallybigtextstring
|| ''000000000000000000000000000000000'';
END LOOP;
INSERT INTO testclob
(id,
c,
d)
VALUES (0,
reallybigtextstring,
''done'');
dbms_output.Put_line(''I have finished inputting your clob: ''
|| Length(reallybigtextstring));
END;
/
SELECT *
FROM testclob;
"I have finished inputting your clob: 60030"