解决方案,声明一个变量

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错的解决方法及其它相关场景解决方案

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐