ध्यान रखें कि 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"