Husk, at SQL-strenge ikke kan være større end 4000 bytes, mens Pl/SQL kan have strenge så store som 32767 bytes. se nedenfor for et eksempel på indsættelse af en stor streng via en anonym blok, som jeg tror vil gøre alt, hvad du har brug for.
bemærk, at jeg ændrede varchar2(32000) til 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"