当通过insert语句直接插入大量字符串(主要是html的内容),超过4000字符时候,就会报:

虽然字段是clob,足以存储,但是通过这种直接插入的时候,因为没有强制指定带插入字符串为clob类型,

oracle会把插入的字符串作为 “字符串类型”处理,由于oracle有最大字符串限制(不超过4000个字符),所以会报错。

解决思路:指定待插入字符串类型为clob,可以使用过程或存储过程

例子:

DECLARE
 REALLYBIGTEXTSTRING CLOB := '待插入的海量字符串';
BEGIN

   INSERT INTO test_table VALUES('test', REALLYBIGTEXTSTRING, '0');
end ;
/

commit;

这样就可以解决问题。

补充:java的jdk对这种情景有通过l流的方式处理,因此比较方便。

        另外:插入html内容,可能含有空格  ,字符&是oracle的关键字,因此插入之前要转义

        如:'||chr(38)||'nbsp;

 

 

相关文章:

  • 2021-11-02
  • 2021-10-20
  • 2021-07-19
  • 2022-02-27
  • 2022-01-06
猜你喜欢
  • 2022-12-23
  • 2021-07-05
  • 2022-02-02
  • 2022-12-23
  • 2021-09-14
  • 2022-12-23
相关资源
相似解决方案