Имайте предвид, че SQL низовете не могат да бъдат по-големи от 4000 байта, докато Pl/SQL може да има низове до 32767 байта. вижте по-долу за пример за вмъкване на голям низ чрез анонимен блок, който вярвам, че ще направи всичко, което трябва да направи.
забележете, че промених varchar2(32000) на 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"