由于缺乏测试环境,我需要知道以下方案是否有效:
我已经安装了Oracle for .Net版本9.2.0.4。在生产环境中,我必须从我的C#应用程序与两个数据库进行通信,一个是Oracle8i,一个是9i。
在这种情况下,Oracle 8i是否支持绑定变量?
我可能会使用类似于下面的代码:
提前感谢!
OracleCommand cmd = con.CreateCommand();
OracleTransaction txn = con.BeginTransaction();
try {
cmd.CommandText = "update MayJun2009 " +
"set balance = balance + :1 " +
"where account_id = :2";
OracleParameter pBalance = new OracleParameter();
pBalance.OracleDbType = OracleDbType.Int32;
OracleParameter pAccount = new OracleParameter();
pAccount.OracleDbType = OracleDbType.Int32;
cmd.Parameters.Add(pBalance);
cmd.Parameters.Add(pAccount);
pBalance.Value = -500;
pAccount.Value = 1;
cmd.ExecuteNonQuery();
pBalance.Value = 500;
pAccount.Value = 2;
cmd.ExecuteNonQuery();
txn.Commit();
}
catch (OracleException ex) {
txn.Rollback();
}发布于 2010-04-07 22:47:10
是的,这个例子应该使用绑定变量,不管它是Oracle8还是9i。你可以做一个数据库跟踪来确认。下面是C#绑定的另一个示例:
Building an Oracle Data Provider for .NET Application
发布于 2010-04-07 23:45:17
如果您的应用程序使用的是9iR2客户端或更高版本(在您的情况下似乎是这样),您可以连接到Oracle8i (or even straight Oracle8) databases。
https://stackoverflow.com/questions/2592907
复制相似问题