-- Session 1 CONN system/manager GRANT CONNECT, RESOURCE TO test IDENTIFIED BY test; CONN test/test CREATE TABLE a (a NUMBER); INSERT INTO a VALUES (1); COMMIT; -- 加鎖查詢 SELECT * FROM a FOR UPDATE; -- 鎖定整行 -- 或 SELECT * FROM a FOR UPDATE OF a.a; -- 僅鎖定指定欄位 -- Session 2 (新視窗) CONN test/test DELETE FROM a; -- 此處阻塞等待鎖釋放
在 Session 1 執行 ROLLBACK; 或 COMMIT; 即可釋放鎖,Session 2 的 DELETE 隨即繼續執行。
FOR UPDATE 預設等待無限制,可加 NOWAIT 或 WAIT n 控制等待行為。