2.仅能绑定要插入 LONG 列的 LONG 值
ORA-06512: 在 line 4

用PL/SQL
"declare \n"+
"v_clob clob :=?; \n"+
"v_clob2 clob :=?; \n"+
"begin \n"+
"insert into QB_QBBS_QBXX(uuid,qblb,qbfssj,bbdw,bbr,qbsbsj,qbzt,qbsbbm,qbsbdw,qbspzt,spdw,spr,spsj,qbnr,qbnr2) values(?,?,to_date(?,'yyyy-mm-dd hh24:mi:ss'),?,?,sysdate,'已上报','情报',?,'通过',?,?,to_date(?,'yyyy-mm-dd hh24:mi:ss'),v_clob,SUBSTR(REGEXP_REPLACE(v_clob2,'(\\<[^\\>]+\\>)|(&&nbsp;)|(\\s)'),0,30) ); \n"+
"end; \n";

绑定数据列

在用ado.net开发oracle数据库时,常常会遇到这样的错误,会出现这样的错误的由几个数据类型,分别是varchar2,clob,long,nvarchar2,nclob,如果在执行操作的时候,没有对参数类型进行绑定的话,偶尔就会出现这个错误,造成错误的原因主要是根据字符串的长度,比如clob字符在2000-4000时出现这个错误,其他的类似,所以在编码的时候尽量不要用自动类型转换方式,而要进行显示绑定,由于这次项目是做异构/同构数据库同步,所以需要兼容很多数据类型,所以在代码里尽量使用了自动类型转换,没有进行显示绑定,这样大大的减少了代码量,不然在编码上一个varchar2就必须对应上所以的字符数据类型,代码冗余,确实有些是不必要进行绑定的,比较省事。为了尽量避免隐患,最好还是都绑定一下类型。因为在开发环境中测试,很多隐藏问题没法测出来。

posted on 2016-03-18 10:27  来临  阅读(5258)  评论(0编辑  收藏  举报