Oracle CLOB can't insert beyond 4000 character?

前端 未结 3 1951
北海茫月
北海茫月 2020-12-30 07:02

How to insert more than 4000 characters to CLOB type column?

--create test table s
create table s
(
      a clob
);
insert into s values(\'>4000 char\')
<         


        
3条回答
  •  伪装坚强ぢ
    2020-12-30 07:55

    The maximum for one time insertion is 4000 characters (the maximum string literal in Oracle). However you can use the lob function dbms_lob.append() to append chunks of (maximum) 4000 characters to the clob:

    CREATE TABLE don (x clob);
    
    
    DECLARE 
     l_clob clob;
    BEGIN
      FOR i IN 1..10
      LOOP
        INSERT INTO don (x) VALUES (empty_clob()) --Insert an "empty clob" (not insert null)
        RETURNING x INTO l_clob;
    
        -- Now we can append content to clob (create a 400,000 bytes clob)
        FOR i IN 1..100
        LOOP
          dbms_lob.append(l_clob, rpad ('*',4000,'*'));
          --dbms_lob.append(l_clob, 'string chunk to be inserted (maximum 4000 characters at a time)');
        END LOOP;
      END LOOP;
    END;
    

提交回复
热议问题