Denken Sie daran, dass SQL-Strings nicht größer als 4000 Bytes sein dürfen, während Pl/SQL Strings bis zu 32767 Bytes haben kann. siehe unten für ein Beispiel für das Einfügen einer großen Zeichenfolge über einen anonymen Block, von dem ich glaube, dass er alles tun wird, was Sie tun müssen.
Hinweis:Ich habe varchar2(32000) in CLOB geändert
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"