2009-07-14 82 views
0

好吧,這看起來很簡單,但我找不到解決方案來挽救我的生命。我正在嘗試在Oracle數據庫上執行一個非常簡單的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連接,並得到了相同的結果。任何想法都表示讚賞。

+0

是數據庫中的新行,即使它掛起? – northpole 2009-07-14 18:01:51

+0

對不起,我應該提到這一點。不是這樣。 – EBGreen 2009-07-14 18:05:28

回答

3

您是否承諾或回滾了Toad中的交易?您的應用程序可能正在等待由Toad創建的會話持有的鎖定。

0

你是否試過在事務中包裝它,並在插入後明確提交? IIRC,與SQL Server不同,Oracle的默認語義是非常面向事務的。

+0

我會試試這個。如果你有代碼可以幫助。無論我會在網絡上徘徊,看看我能否找到一個例子。 – EBGreen 2009-07-14 18:06:05