MEMO-在Oracle裡查看物件被誰鎖定
| | 0 | | ![]() |
試圖變更Procedure內部使用的暫存資料表:
alter table TEMPBUFFER modify EXCHANGERATE NUMBER(14,5)
執行時一直傳回 ORA-14450 attempt to access a transactional temp table already in use。
理論上Procedure不會一直在執行中,應該是有人手動操作時沒有Commit,到底是誰呢?
DBA指點我用以下方法,可以查出誰在鎖定它: (要被Grant Permission才可用)
select * from v$session
where SID = (
select SID from v$lock where id1=(
select object_id
from user_objects
where object_name=UPPER('TEMPBUFFER')
)
)
where SID = (
select SID from v$lock where id1=(
select object_id
from user_objects
where object_name=UPPER('TEMPBUFFER')
)
)
Comments
Be the first to post a comment