Oracle
 sql >> Database >  >> RDS >> Oracle

Come scrivere lo script di inserimento di Oracle con un campo come CLOB?

Tieni presente che le stringhe SQL non possono essere più grandi di 4000 byte, mentre Pl/SQL può avere stringhe grandi come 32767 byte. vedi sotto per un esempio di inserimento di una stringa di grandi dimensioni tramite un blocco anonimo che credo farà tutto ciò di cui hai bisogno.

nota che ho cambiato varchar2(32000) in 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"