1. 程式人生 > >工作總結15 sql的insert語句插入大量字串到oracle的clob欄位

工作總結15 sql的insert語句插入大量字串到oracle的clob欄位

    當通過insert語句直接插入大量字串(主要是html的內容),超過4000字元時候,就會報:ORA-01489: 字串連線的結果過長.

   雖然欄位是clob,足以儲存,但是通過這種直接插入的時候,因為沒有強制指定帶插入字串為clob型別,oracle會把插入的字串作為 “字串型別”處理,由於oracle有最大字串限制(不超過4000個字元),所以會報錯。

   解決方法:指定待插入字串型別為clob,可以使用過程或儲存過程。

   示例:

       DECLARE
      clobString CLOB := '待插入的海量字串';
      BEGIN
      INSERT INTO test_table VALUES('test', clobString, '0');
      end ;
      /
      commit;

       java的jdk對這種情景有通過l流的方式處理,因此比較方便。
       另外:插入html內容,可能含有空格  ,字元&是oracle的關鍵字,因此插入之前要轉義, 如:'||chr(38)||'nbsp;