我有一個的Oracle 11g表具有以下列名和類型:參數的OracleCommand的更新到Oracle表使用ODP.NET /綁定變量?
ID VARCHAR2(32 BYTE)
VERSION VARCHAR2(12 BYTE)
我想獲得綁定變量到一個Oracle參數命令工作了Update語句使用ODP.NET和C#這個表,但我沒有運氣。這裏是我使用的代碼:
string constr = gconstr + "; Data Source=" + db;
OracleConnection con = new OracleConnection(constr);
con.Open();
ddiId = "WS_5043";
ddiVer = "1.0.3";
string UPDATE_CLOB_QUERY = "UPDATE :ddiTable SET version=:ddiVer WHERE id=:ddiId";
Oracle.DataAccess.Types.OracleXmlType ret;
OracleCommand oracleCommand2 = new OracleCommand(UPDATE_CLOB_QUERY, con);
oracleCommand2.Parameters.Clear();
oracleCommand2.Parameters.Add("ddiId", OracleDbType.Varchar2, ParameterDirection.Input).Value = ddiId;
oracleCommand2.Parameters.Add("ddiTable", OracleDbType.Varchar2, ParameterDirection.Input).Value = ddiTable;
oracleCommand2.Parameters.Add("ddiVer", OracleDbType.Varchar2, ParameterDirection.Input).Value = ddiVer;
oracleCommand2.ExecuteNonQuery();
oracleCommand2.Dispose();
當我運行在VS2010上面的代碼中,我得到以下Oracle錯誤:
ORA-01036: illegal variable name/number
然而,當我刪除綁定變量的聲明在SQL那麼上述作品即
string UPDATE_CLOB_QUERY = "UPDATE wstable SET version='1.0.2' WHERE id='WS_5043'";
我在做什麼錯?
我需要知道如何讓綁定變量,如上圖所示爲要求參數Oracle命令與SQL更新工作等命令,因爲我將開始最終在其他表更新大型的CLOB(和連接爲在字符串中的CLOB SQL當然會導致大小限制錯誤)。所以讓這個工作成爲第一個勝利。
我不認爲你可以使用一個參數表名。 – mgnoonan
我確實發現[這個答案在網站的其他地方] [1],可以幫助你。 [1]:http://stackoverflow.com/questions/1179652/how-to-use-a-variable-in-oracle-script-for-the-table-name – mgnoonan