sql >> Databáze >  >> RDS >> Oracle

Jak napsat skript pro vložení Oracle s jedním polem jako CLOB?

Mějte na paměti, že řetězce SQL nemohou být větší než 4000 bajtů, zatímco Pl/SQL mohou mít řetězce velké až 32767 bajtů. viz níže příklad vložení velkého řetězce prostřednictvím anonymního bloku, který podle mého názoru udělá vše, co potřebujete.

Všimněte si, že jsem změnil varchar2(32000) na 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"


  1. předání LIMIT jako parametrů MySQL sproc

  2. Služba DMS pro migraci databáze AWS

  3. execSQL:je bindargs lepší?

  4. Jak se připojit k databázi MySQL