2010-02-16 53 views
1

我正在編寫一個將XML文件解析到Oracle SQL數據庫的組合Java/Perl程序。數據庫中有兩個表格 - 一個保存來自XML文件的數據,另一個保存關於文件本身(文件名,創建時間等)的信息。基本上,當新的XML文件出現時,Java程序會檢查它是否已被解析或部分解析。如果有,則使用UPDATE FILESTATUS SET STATUS='bad' WHERE ID=?將filestatus表中的STATUS列從該文件ID的'好'更改爲'壞'。但是,當我運行它時,它會卡住這樣做。任何想法爲什麼會發生?沒有錯誤消息正在發生,它只是掛起。代碼如下。SQL更新掛起Java程序

static void markDataBad(String docID) 
    { 
     try 
     { 
      String update = "UPDATE FILESTATUS SET STATUS='bad' WHERE ID=?"; 
      PreparedStatement updateStatus = Main.con.prepareStatement(update); 
      updateStatus.setString(1, docID); 
      updateStatus.execute(); 
     } 
     catch (Exception ex) {ex.printStackTrace();} 
    } 

我已經試圖改變updateStatus.execute()updateStatus.executeQuery()updateStatus.executeUpdate(),但似乎沒有任何改變了。

在此先感謝!

回答

9

您是否對其他地方的表進行了無可否認的更改?今天我遇到了這個問題,因爲我在SQL * Developer中對錶進行了一些更改,並且在表中保留了一個鎖,直到我承諾它。

+0

原來我做到了。冉承諾數據庫,現在它更新沒有問題(當然,除了在代碼中出現的問題)。 謝謝! – ryantmer 2010-02-16 21:05:39

0

您的用戶是否擁有該表的權限?
您是否在桌面鎖定之前發佈了或缺少提交?
你可以在shell中運行查詢嗎?