如何用一个字段作为CLOB编写oracle插入脚本?

时间:2010-10-08 12:43:49

标签: oracle

我想创建一个插入脚本,该脚本仅用于将一条记录插入一个表中。

它有5列,其中一列是CLOB类型。

每当我尝试时,它表示无法插入字符串这么久。大于4000。

我需要一个带有clob的插入语句作为一个字段。

INSERT INTO tbltablename 
            (id, 
             NAME, 
             description, 
             accountnumber, 
             fathername) 
VALUES      (1, 
             N'Name', 
             clob'some very long string here, greater than 4000 characters', 
             23, 
             'John') ;

1 个答案:

答案 0 :(得分:18)

请记住,SQL字符串不能大于4000字节,而Pl / SQL可以包含大到32767字节的字符串。请参阅下面的示例,通过匿名块插入一个大字符串,我相信它会完成您需要做的所有事情。

注意我将varchar2(32000)更改为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"