sql >> Database >  >> RDS >> Oracle

Hoe schrijf ik een Oracle Insert-script met één veld als CLOB?

Houd er rekening mee dat SQL-strings niet groter kunnen zijn dan 4000 bytes, terwijl Pl/SQL strings kan hebben die zo groot zijn als 32767 bytes. zie hieronder voor een voorbeeld van het invoegen van een grote string via een anoniem blok waarvan ik denk dat het alles zal doen wat nodig is.

let op ik heb de varchar2(32000) gewijzigd 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"


  1. SQLite IS NULL

  2. Een voortschrijdend gemiddelde MySQL berekenen?

  3. Oracle - Waarom verdwijnt de voorloopnul van een getal bij het converteren naar TO_CHAR

  4. Gebruikersaccountbeheer, rollen, machtigingen, authenticatie PHP en MySQL - Deel 2