更新一個表時,在提交之前Oracle會在這個表上加上1個TM鎖,確保表的結構不會改變。
這個時候,如果另一個會話在該表格上執(zhí)行alter或者drop命令,就會立即得到以下錯誤信息:
tony@ORA11GR2> drop table t;
drop table t
*
-
第 1 行出現錯誤:
ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源, 或者超時失效
在Oracle11gR2中,可以設定DDL_LOCK_TIMEOUT參數讓DDL等待。
例如在執(zhí)行DROP TABLE之前,執(zhí)行
alter session set ddl_lock_timeout=30;
讓drop table等待30秒,如果30秒內,另外那個鎖定待刪除表格的會話提交或者回滾了事務,
這個drop table命令就會得到執(zhí)行,否則就會在30秒后產生1個ORA-00054:錯誤。
本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|