Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak napisać skrypt wstawiania oracle z jednym polem jako CLOB?

Należy pamiętać, że łańcuchy SQL nie mogą być większe niż 4000 bajtów, podczas gdy Pl/SQL może mieć łańcuchy o wielkości do 32767 bajtów. zobacz poniżej przykład wstawiania dużego ciągu przez anonimowy blok, który, jak sądzę, zrobi wszystko, czego potrzebujesz.

uwaga, zmieniłem 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyrażenia regularne Oracle. Niebezpieczny zasięg

  2. Samozadowolenie prowadzi do:Ryzyko staje się rzeczywistością

  3. Metoda gromadzenia:procedura DELETE w bazie danych Oracle

  4. Różnica między VARCHAR2 (10 CHAR) a NVARCHAR2 (10)

  5. oci_bind_by_name i do_date PHP/OCI/Oracle