Należy pamiętać, że łańcuchy SQL nie mogą być większe niż 4000 bajtów, podczas gdy Pl/SQL może mieć łańcuchy o wielkości do 32767 bajtów. zobacz poniżej przykład wstawiania dużego ciągu przez anonimowy blok, który, jak sądzę, zrobi wszystko, czego potrzebujesz.
uwaga, zmieniłem varchar2 (32000) na 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"