oracle插入CLOB类型超过4000个字符报ORA-01704错的解决方法

解决方案,声明一个变量

DECLARE v_sql CLOB;
BEGIN
v_sql := RPAD('*', 4000, '*') || RPAD('*', 4000, '*');
INSERT INTO TEST(STATUS, BODY) VALUES('complete', v_sql);
COMMIT;
END;

原因

因为oracle在插入CLOB的数据默认会以varchar2的类型插入,所以当超过4000个字符时就会报ORA-01704的错误了(varchar2类型的字符长度是4000,注意:oracle对汉字的存储占3个字符)

参考文章

oracle插入CLOB类型超过4000个字符报ORA-01704错的解决方法及其它相关场景解决方案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章