如何在CLOB类型列中插入超过4000个字符?
--create test table s
create table s
(
a clob
);
insert into s values('>4000 char')
导致错误:
ORA-01704:字符串太长了。
当我想一次插入> 4000的字符串时,该怎么办?有可能吗?
当我阅读Oracle参考资料时,CLOB
可以节省最多4GB(千兆字节)?
一次插入的最大值为4000个字符(Oracle中的最大字符串文字)。但是你可以使用lob函数dbms_lob.append()
将(最多)4000个字符的块附加到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;
这是一个例子:
insert into <table> (clob_column)
values
(
to_clob(' <=4000 symbols ')
||to_clob(' <=4000 symbols ')
||to_clob(' <=4000 symbols ')
...
||to_clob(' <=4000 symbols ')
);
使用clob
列并使用sqlldr
从csv导入数据。
sqldeveloper
可以为您生成必要的control
.ctl
脚本。