我想创建一个插入脚本,该脚本仅用于将一条记录插入一个表中。
它有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') ;
答案 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"