在forad中为oracle释放锁定

时间:2016-07-07 17:24:58

标签: oracle toad

我在oad的桌面上为oracle做了一个select for update语句,它对该表进行了锁定。

如何释放此锁定。 (我没有DBA访问权限)..

执行提交会自动释放该锁吗?

1 个答案:

答案 0 :(得分:1)

是的,COMMITROLLBACK会释放锁定。

如果在您发出ROLLBACK后该表仍处于锁定状态,则锁定您。这是我用来确定谁在等谁的查询。还有很多其他方法可以做到这一点,但这个方法对我有用。

SELECT s.SID,
       s.serial#,
       s.blocking_session,
       s.final_blocking_session,
       s.event,
       s.module,
       s.action,
       s.sql_id,
       o.NAME locked_object,
       -- This is commented out because sometimes you'll get an invalid row id.  So I only put it in when I need it
--       CASE
--          WHEN s.row_wait_obj# <> -1 THEN DBMS_ROWID.rowid_create (1,
--                                                                   s.row_wait_obj#,
--                                                                   s.row_wait_file#,
--                                                                   s.row_wait_block#,
--                                                                   s.row_wait_row#)
--          ELSE NULL
--       END locked_row_id,
       s.wait_class,
       s.seconds_in_wait,
       s.state,
       s.osuser,
       s.client_identifier,
       sq.sql_text,
       sq.sql_fulltext
FROM   v$session s,
       SYS.obj$ o,
       v$sql sq 
WHERE  (   blocking_session IS NOT NULL
        OR SID IN (SELECT blocking_session
                   FROM   v$session))
AND    o.obj#(+) = s.row_wait_obj#
and    sq.sql_id = s.sql_id