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