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,'(\\<[^\\>]+\\>)|(& )|(\\s)'),0,30) ); \n"+
"end; \n";
綁定數據列
在用ado.net開發oracle數據庫時,常常會遇到這樣的錯誤,會出現這樣的錯誤的由幾個數據類型,分別是varchar2,clob,long,nvarchar2,nclob,如果在執行操作的時候,沒有對參數類型進行綁定的話,偶爾就會出現這個錯誤,造成錯誤的原因主要是根據字符串的長度,比如clob字符在2000-4000時出現這個錯誤,其他的類似,所以在編碼的時候盡量不要用自動類型轉換方式,而要進行顯示綁定,由於這次項目是做異構/同構數據庫同步,所以需要兼容很多數據類型,所以在代碼里盡量使用了自動類型轉換,沒有進行顯示綁定,這樣大大的減少了代碼量,不然在編碼上一個varchar2就必須對應上所以的字符數據類型,代碼冗余,確實有些是不必要進行綁定的,比較省事。為了盡量避免隱患,最好還是都綁定一下類型。因為在開發環境中測試,很多隱藏問題沒法測出來。