我在下面的Java代碼中遇到問題。它應該在給定ID的表格中更新某些記錄,以及STATUS
列的'好'(這在任何給定時間只有一行)。但是,當我運行下面的代碼時,它似乎忽略AND STATUS = 'good'
部分,並且更新所有NUMRECS
,無論ID
匹配。在Java中有多個條件的Oracle UPDATE命令
static void insertNumRecs()
{
PreparedStatement insert = null;
try
{
String insertNumRecsCommand = "UPDATE FILESTATUS SET NUMRECS = ? " +
"WHERE ID = ? AND STATUS = 'good'";
insert = Main.con.prepareStatement(insertNumRecsCommand);
insert.setInt(1, Main.numRecs);
insert.setString(2, Main.docID);
insert.executeUpdate();
}
catch (Exception ex) {ex.printStackTrace();}
finally {close(null, insert);}
}
我試過尋找這個無處不在,但我找不到任何答案。當我直接從數據庫運行命令時,它運行良好,這更讓我困惑。
在此先感謝。
該查詢應該工作並尊重'status ='good''部分。還有其他的東西必須在玩。如果您在另一個數據庫會話中親自操作狀態字段進行測試,您確定在測試發佈的代碼之前已經提交了更改嗎? – 2010-02-19 22:37:39
是的,我相信,因爲在我提交之前程序根本無法工作(甚至不會插入數據,更不用說更新了)。感謝您的建議,雖然:) – ryantmer 2010-02-19 23:44:20