Oracle 解决ORA-01704 字符串文字太长 - 图1
    现象:后台编辑新闻时,由于新闻内容很多,在保存的时候报“系统异常”,然后查看日志发现报“ora-01704”错误,然后网上查询后,发现是因为执行的sql语句字符串长度超过最大长度导致的。
    原因:一般为包含有对CLOB字段的数据操作。如果CLOB字段的内容非常大的时候,会导致SQL语句过长。隐式转换:oracle默认把字符串转换成varchar2类型,而这个字符串的长度,又比4000大,所以会报ora-01704错误。说得通俗一点,就是两个单引号之间的字符不能超过4000。
    解决办法:
    1.限制输入长度。
    2可以使用PL/SQL语法,采取绑定变量的方式解决,而不是直接拼接SQL,例如:

    1. DECLARE
    2. clobValue 表名.字段名%TYPE;
    3. BEGIN
    4. clobValue := 'XXX'; --字段内容
    5. UPDATE 表名 T SET T.字段名 = clobValue WHERE 条件;
    6. COMMIT;
    7. END;
    8. /

    注:END;末尾加“/”的意思是执行这段PL/SQL代码,如果多个PL/SQL代码需要同时执行,末尾必须加上该符号。
    参考网址:
    https://www.cnblogs.com/loong-hon/p/10820361.html
    https://cloud.tencent.com/developer/article/1414730