查询挂起

时间:2009-07-14 17:53:22

标签: c# oracle

好的,这看起来很简单,但我找不到解决方案来挽救我的生命。我试图在Oracle DB上进行一个非常简单的INSERT查询。我可以使用与我在代码中使用的凭据相同的凭据登录到TOAD中的数据库,并且运行INSERT没有问题,因此尽管我可以知道凭证没有权限问题,但查询本身在语法上是正确的。当我尝试运行以下代码时,它只是挂起。没有错误或任何东西。我可以看到会话弹出TOAD,所以我可以告诉代码建立连接没有问题。这是代码:

        String connStr = "Data Source=DB;User id=<USER>;Password=<PASSWORD>;";
        String query = "INSERT INTO table (fields) VALUES (values)";

        OracleConnection conn = new OracleConnection(connStr);
        conn.Open();
        OracleCommand cmd = conn.CreateCommand();
        cmd.CommandText = query;
        cmd.CommandType = CommandType.Text;
        cmd.ExecuteNonQuery();
        conn.Close();
        conn.Dispose();

我也尝试过使用ADO连接并获得相同的结果。任何想法都表示赞赏。

2 个答案:

答案 0 :(得分:3)

您是否已在Toad中提交或回滚交易?您的应用程序可能正在等待Toad创建的会话所持有的锁定。

答案 1 :(得分:0)

您是否尝试将其包装在事务中并在插入后显式提交? IIRC,Oracle的默认语义非常依赖于事务,与SQL Server不同。