2009-07-14 21 views
0

これは簡単ですが、人生を救うための解決策が見つかりません。私は、Oracle DB上で非常に単純なINSERTクエリを実行しようとしています。私はTOADのDBに、私がコードで使用しているのと同じ資格でログインし、問題なく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接続を使用して試しても同じ結果を得ました。任意のアイデアが評価されます。

+0

は、ハングアップしてもデータベースの新しい行ですか? – northpole

+0

申し訳ありませんが、私はそれを言及すべきでした。そうではない。 – EBGreen

答えて

3

Toadでトランザクションをコミットまたはロールバックしましたか? Toadによって作成されたセッションで保持されているロックをアプリケーションが待機している可能性があります。

+0

私はしていないが、私は今それを試してみるだろう。 – EBGreen

+0

Ding!丁!丁!私たちは勝者を持っています!どうもありがとう。 – EBGreen

+0

いいえ、これについて言えば、行がDBにあるかどうか聞いていました。 – northpole

0

トランザクションでラップして、挿入後に明示的にコミットしようとしましたか? IIRCでは、Oracleのデフォルトのセマンティクスは、SQL Serverとは異なり、トランザクション指向です。

+0

私はこれを試してみます。あなたに役立つコードがある場合。いずれにせよ、私はウェブの周りを突き刺して、私が例を見つけることができるかどうかを見ます。 – EBGreen

関連する問題