Tieni presente che le stringhe SQL non possono essere più grandi di 4000 byte, mentre Pl/SQL può avere stringhe grandi come 32767 byte. vedi sotto per un esempio di inserimento di una stringa di grandi dimensioni tramite un blocco anonimo che credo farà tutto ciò di cui hai bisogno.
nota che ho cambiato varchar2(32000) in 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"