如何在 CLOB 类型的列中插入超过 4000 个字符?

--create test table s
create table s
(
      a clob
);
insert into s values('>4000 char')
结果报错:

我想一次插入> 4000 个字符的字符串。我该怎么做?是否有可能?
当我阅读 Oracle 引用时,CLOB 最多可以节省 4GB(Gigabyte)?

最佳答案

一次插入的最大值为 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;

关于Oracle CLOB 不能插入超过 4000 个字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18394691/

10-12 18:42