Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como escrever script de inserção oracle com um campo como CLOB?


Tenha em mente que strings SQL não podem ter mais de 4000 bytes, enquanto Pl/SQL pode ter strings de até 32767 bytes. veja abaixo um exemplo de inserção de uma string grande por meio de um bloco anônimo que acredito que fará tudo o que você precisa.

observe que alterei o varchar2(32000) para 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"