Tenga en cuenta que las cadenas 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 que haga.
nota que cambié 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"