如何向CLOB类型列插入超过4000个字符?
--create test table s
create table s
(
a clob
);
insert into s values('>4000 char')
导致错误:
ORA-01704:字符串太长了。
当我想一次插入字符串> 4000时,怎么办?有可能吗?
当我阅读Oracle参考时,CLOB
可以节省最多4GB(千兆字节)?
答案 0 :(得分:7)
一次插入的最大值为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;
答案 1 :(得分:4)
以下是一个例子:
var remark = "";
var dateofentry = moment(new Date(parseInt(item.DateOfEntry.substr(6)))).format('MMM D, YYYY');
var dateofentry6mos = moment(dateofentry).add(6, 'months').format('MMM D, YYYY');
var dateofentry12mos = moment(dateofentry).add(1, 'year').format('MMM D, YYYY');
var CurrentDate = moment().format('MMM D, YYYY');
for (var m = moment(CurrentDate) ; m.isBefore(dateofentry6mos) ; m.add(1, 'days'))
{
remark = ("<td style='text-align:left;'>" + "Reached <span style='color:#014da2;font-weight:bold;'>" + m.format('M') + "</span>" + " months and " + m.format('D') + " days today " + "</td>");
}
答案 2 :(得分:0)
使用clob
列并使用sqlldr
从csv导入数据。
sqldeveloper
可以为您生成必要的control
.ctl
脚本。