Gardez à l'esprit que les chaînes SQL ne peuvent pas dépasser 4000 octets, tandis que Pl/SQL peut avoir des chaînes aussi grandes que 32767 octets. voir ci-dessous un exemple d'insertion d'une grande chaîne via un bloc anonyme qui, je pense, fera tout ce dont vous avez besoin.
notez que j'ai changé le varchar2(32000) en 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"