Mějte na paměti, že řetězce SQL nemohou být větší než 4000 bajtů, zatímco Pl/SQL mohou mít řetězce velké až 32767 bajtů. viz níže příklad vložení velkého řetězce prostřednictvím anonymního bloku, který podle mého názoru udělá vše, co potřebujete.
Všimněte si, že jsem změnil 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"