oracle-tom-dmllock-tm

oracle_db發表於2012-04-23
TM 鎖(TM lock)==用於確保在修改表的內容時,表的結構不會改變
如果一個表正在被更新,但是其它會話對它進行DROP

會話1:

SQL> update t set wner='xxx';

1655 rows updated.

SQL> 

會話2:
SQL> conn /as sysdba
Connected.
SQL> drop table t;
drop table t
           *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified

鎖相關檢視--v$lock.

SQL> 

出錯就是因為在更新的時候對錶加了鎖。如果會話1提交事務,會話2在DROP就不會出錯。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15720542/viewspace-722039/,如需轉載,請註明出處,否則將追究法律責任。