sql >> Databasteknik >  >> RDS >> Oracle

Hur man skriver oracle insert script med ett fält som CLOB?

Tänk på att SQL-strängar inte kan vara större än 4000 byte, medan Pl/SQL kan ha strängar så stora som 32767 byte. se nedan för ett exempel på att infoga en stor sträng via ett anonymt block som jag tror kommer att göra allt du behöver göra.

observera att jag ändrade varchar2(32000) till 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. Grunderna i sys.dm_exec_requests

  2. Lista över främmande nycklar och tabellerna de refererar till i Oracle DB

  3. Åtkomst till resultatuppsättningar från lagrade procedurer Transact-SQL SQL Server

  4. Generera ett antal nummer i MySQL