首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Oracle DELETE 後數據仍可見:未提交事務導致

     編輯:程式設計疑難解答

現象

執行 DELETE FROM table WHERE ... 無報錯,但在另一會話/工具中仍能查到數據。

原因

Oracle 默認隱式事務,DML 操作需顯式 COMMIT 才生效,否則僅在當前會話可見(隔離級別 Read Committed)。

解決

DELETE FROM table WHERE id = 1;
COMMIT; -- 必須提交

工具設置

  • SQL*Plus / SQL Developer:設置 SET AUTOCOMMIT ON 或勾選「自動提交」
  • Java/JDBC:connection.setAutoCommit(true) 或手動 commit()

驗證

另一會話執行 SELECT * FROM table WHERE id = 1 應返回空結果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved