错误提示:oracle在toad中执行一段sql语句时,出现错误‘ORA-01704:字符串文字太长’.如下图: 原因:一般为包含有对CLOB字段的数据操作.如果CLOB字段的内容非常大的时候,会导致SQL语句过长.隐式转换:oracle默认把字符串转换成varchar2类型,而这个字符串的长度,又比4000大,所以会报ora-01704错误.说得通俗一点,就是两个单引号之间的字符不能超过4000. 解决办法:使用PL/SQL语法,采取绑定变量的方式解决,而不是直接拼接SQL DECLARE c
错误提示:oracle在toad中执行一段sql语句时,出现错误‘ORA-01704:字符串文字太长’.如下图: 原因:一般为包含有对CLOB字段的数据操作.如果CLOB字段的内容非常大的时候,会导致SQL语句过长.隐式转换:oracle默认把字符串转换成varchar2类型,而这个字符串的长度,又比4000大,所以会报ora-01704错误.说得通俗一点,就是两个单引号之间的字符不能超过4000. 解决办法:使用PL/SQL语法,采取绑定变量的方式解决,而不是直接拼接SQL DECLARE c
分析sql执行失败的原因,在于没有强制指定插入字符串为clob类型,解析sql时,oracle会把插入的字符串作为 “字符串类型”处理,由于oracle有最大字符串限制(不超过4000个字符),所以会报错. DECLARE clobValue EMR_PATIENT_BCLIST.BCCONTENT%TYPE; BEGIN clobValue := '{2}'; UPDATE EMR_PATIENT_BCLIST T SET T.BCCONTENT = clobValue WHERE REG_N