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