sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo escribir un script de inserción de Oracle con un campo como CLOB?

Tenga en cuenta que las cadenas SQL no pueden tener más de 4000 bytes, mientras que Pl/SQL puede tener cadenas de hasta 32767 bytes. vea a continuación un ejemplo de cómo insertar una cadena grande a través de un bloque anónimo que creo que hará todo lo que necesita que haga.

nota que cambié varchar2(32000) a 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"