這是關於使用JDBC的sql更新語句。其實我正在研究一些我們曾經遇到的問題,這些問題都是在更新語句返回零時嘗試更新某一行時出現的。oracle Jdbc更新語句返回零
現在要說清楚,特定行更新聲明正在嘗試更新在表中存在。因此沒有找到記錄的可能性,因此沒有更新。
提到過,我的問題是,你看到或者是他們的任何其他可能性,其中更新可以返回零。我正在使用oracle jdbc驅動程序。所以oracle jdbc提到了任何可以通過更新語句返回零而不是找不到記錄的場景。
非常感謝, 阿米爾Mawia
這是關於使用JDBC的sql更新語句。其實我正在研究一些我們曾經遇到的問題,這些問題都是在更新語句返回零時嘗試更新某一行時出現的。oracle Jdbc更新語句返回零
現在要說清楚,特定行更新聲明正在嘗試更新在表中存在。因此沒有找到記錄的可能性,因此沒有更新。
提到過,我的問題是,你看到或者是他們的任何其他可能性,其中更新可以返回零。我正在使用oracle jdbc驅動程序。所以oracle jdbc提到了任何可以通過更新語句返回零而不是找不到記錄的場景。
非常感謝, 阿米爾Mawia
的executeUpdate
INT的executeUpdate() 拋出的SQLException
執行此PreparedStatement對象的SQL語句,該語句必須是一個SQL數據操作語言(DML)語句,如INSERT,UPDATE或DELETE;或者不返回任何內容的SQL語句,如DDL語句。
返回: :(1)對於不返回任何內容 SQL數據操縱語言(DML)語句(2)0 SQL語句的行數拋出: SQLException - 如果發生數據庫訪問錯誤;這種方法被稱爲在關閉的PreparedStatement或SQL語句返回ResultSet對象
只是說,DOC規定:
「請注意,當executeUpdate的返回值是0,這可能意味着一二東西:
執行的語句是一個更新語句,它影響零行。 執行的語句是DDL語句。「
對不起,我不知道如何才能發表評論呢,所以......
從甲骨文:
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
注意,當executeUpdate的返回值是0,它可能意味着以下兩種情況之一:
* The statement executed was an update statement that affected zero rows.
* The statement executed was a DDL statement.
所以看起來Update語句可能會以某種你沒有想到的方式變得更糟。考慮到沒有拋出異常,我會認爲是這種情況。如果這是可重複的,您應該能夠監視在服務器端發送的SQL,並查看缺少的內容。
「所以沒有找到記錄的可能性」 - 這通常是剛剛說的*之前,「啊,*這是*爲什麼沒有找到記錄...」請顯示一些代碼。 – 2012-03-28 13:46:46
我在服務器約束下不要共享代碼,儘管我可以說它非常平凡,獲得連接,創建預準備語句並執行它。希望你能欣賞我必須尊重的這種限制。 – mawia 2012-03-28 13:50:32
不是真的,因爲你沒有提供如何檢查它是否真的發現一行的跡象。例如,如果將'UPDATE'更改爲'SELECT'並刪除新值(但否則不要觸及查詢),那麼您會*看到它的工作?根據我的經驗,這很可能是一個像查詢一樣普通的錯字... – 2012-03-28 14:03:39