• 如何通过sql的insert语句插入大量字符串到oracle的clob字段?


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

    ORA-01489: 字符串连接的结果过长

    虽然字段是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;

  • 相关阅读:
    20200713 T3 图论
    20200713 T1序列问题
    【题解】P1441 砝码称重
    【题解】P2858 [USACO06FEB]Treats for the Cows G/S
    【比赛】AISing Programming Contest 2019
    20200709 T3 城堡
    20200709 T2 括号
    20200709 T1 笔记
    20200628 T3 网络检查
    个人技术总结
  • 原文地址:https://www.cnblogs.com/qqzy168/p/3256510.html
Copyright © 2020-2023  润新知