解决方案,声明一个变量
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个字符)