网站服务器拒绝连接,什么是网络推广方案,源码出售平台,德国室内设计网app最近在做一个ESB项目#xff0c;有一个trigger里面执行动态SQL的时候报错#xff1a; ORA-01704: 字符串文字太长 经检查发现SQL里面有个字段是clob类型#xff0c;内容长度4009#xff0c;在oracle里面#xff0c; 一对引号内的字符长度如果超过4000#xff0c;就会报OR…最近在做一个ESB项目有一个trigger里面执行动态SQL的时候报错 ORA-01704: 字符串文字太长 经检查发现SQL里面有个字段是clob类型内容长度4009在oracle里面 一对引号内的字符长度如果超过4000就会报ORA-01704: 字符串文字太长的错误 在网上查了一下资料有大神提出了解决的方法动态SQL变量绑定 什么是动态SQL、什么是变量绑定度娘上有很多资料这里就不解释了 下面例子测试通过了 EXECUTE IMMEDIATE insert into ||V_ROW.t_id|| VALUES(:1,:2,:3,:4,:5) USING V_1, V_2, V_3, V_4, V_CLOB; 上面的:1,:2,:3,:4,:5就是绑定变量using后面的几个变量就是和上面的几个绑定变量一一对应 最后一个变量V_CLOB是一个内容长度超过4000的clob类型变量 如果写成这样会报ORA-01704: 字符串文字太长的错误 EXECUTE IMMEDIATE insert into ||V_ROW.t_id || VALUES(||REPLACE(V_1,,) ||,||REPLACE(V_2,,) ||,||REPLACE(V_3,,) ||,||REPLACE(V_4,,) ||,||V_CLOB ||); 上面对分隔符做了处理不做多解释这里V_CLOB变量内容超过4000长所以会报错字符串太长 转载于:https://www.cnblogs.com/hglh1287/p/5590947.html