如何通過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;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM