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

Hvordan skriver man oracle insert script med et felt som CLOB?

Husk, at SQL-strenge ikke kan være større end 4000 bytes, mens Pl/SQL kan have strenge så store som 32767 bytes. se nedenfor for et eksempel på indsættelse af en stor streng via en anonym blok, som jeg tror vil gøre alt, hvad du har brug for.

bemærk, at jeg ændrede varchar2(32000) til 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. SQLite kommandoer

  2. Fjernelse af standardsporingen – Del 3

  3. Hvordan tilføjer man kommentarer i SQL?

  4. Sådan fungerer Ln()-funktionen i PostgreSQL