我想在CLR 4.5中使用ASP C#中的Oracle连接运行非查询。这里是我的代码:oracle ExecuteNonQuery在ASP.Net上冻结
string connectionString = ConfigurationManager.ConnectionStrings["OracleConnectionString1"].ConnectionString;
OracleConnection conn = new OracleConnection(connectionString);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "update SALES_ADVENTUREWORKS2012.SALESORDERDETAIL set UNITPRICEDISCOUNT=0 where ROWGUID='4A399178-C0A0-447E-9973-6AB903B4AECD'";
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = QUERY_TIMEOUT;
int row_affected = cmd.ExecuteNonQuery();
HttpContext.Current.Response.Write("Rows affected:" + row_affected + "<br/>");
conn.Close();
当我在oracle开发工具中运行查询时,它工作正常。 当我使用上面的asp代码时,它会在执行查询时冻结。即使我使用了5秒的超时时间,它仍会永久冻结。 我试过使用托管和非托管oracle库;两者表现相同。 请注意,使用填充或标量查询工作得很好,因此我的连接字符串没有任何问题。此外,Oracle开发人员可以执行此更新查询的事实证明,这不是权限问题。
任何想法?
你说得对。 Oracle开发工具保持连接打开并且超时不起作用导致此问题。谢谢 – max
我在SQLDeveloper中有无交易的交易 - 委托他们为我工作。谢谢你的提示。 – ben