Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie schreibe ich ein Oracle-Einfügeskript mit einem Feld als CLOB?

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"