Ответ 1
Имейте в виду, что строки SQL не могут превышать 4000 байт, в то время как Pl/SQL может иметь строки размером 32767 байт. см. ниже пример вставки большой строки через анонимный блок, который, я считаю, сделает все, что вам нужно.
note Я изменил 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"