解锁Oracle表

时间:2015-02-23 06:12:03

标签: mysql oracle session locking

解锁oracle表有哪些不同的技术?

我的所作所为。

  1. 获取锁定表的对象ID:

      

    SELECT object_id FROM dba_objects WHERE object_name ='YOUR TABLE NAME';

  2. 获取此ID的SID值:

      

    SELECT sid FROM v $ lock WHERE id1 = OBJECT ID FROM STEP1

  3. 获取这些SID的会话值:

      

    SELECT sid,serial#from v $ session where sid in(COMMA SEPARATED LIST OF SIDs FROM STEP2。)

  4. 杀死导致锁定的会话:

      

    ALTER SYSTEM KILL SESSION(SID,SERIAL#)

  5. 配对第3步的值 例如ALTER SYSTEM KILL SESSION '231,23454'

    但是问题是我有很多已被锁定的表是否还有其他解锁表的技术。

    我正在使用SQLDeveloper是否有解锁它的直接选项。

2 个答案:

答案 0 :(得分:2)

选项1:

好吧,选项之一是回滚锁定的SQL语句。例如,

lock table table1 in exclusive mode;  -- is what you should've used to lock the table.

要解锁:回滚;

选项2:

要找到用户名和sid:

select * from v$locked_object;

要使用sid查找序列号:

select * from v$session where sid= put the sid you found on v$locked_object;

要终止会话:

alter system kill session 'sid, serial#'; -- Execute this command as sysdba as normal user won't have privilege. 

答案 1 :(得分:0)

你也可以尝试只执行

COMMIT;

ROLLBACK;

在本次会议中。