1、会话1,更新emp表,empno=7566
SQL> update emp set sal= sal+1 where empno=7566;
1 row updated.
SQL> select userenv('sid') from dual
2 /
USERENV('SID')
--------------
199
2、会话2,更新emp表, empno=7566
SQL> update emp set comm=500 where empno=7566;
3、查询v$session获取未完成的,且造成其他事务被锁的会话
SELECT vs.sid
,vs.serial#
,vs.seconds_in_wait --通常等待时间超过2min需要考虑被锁
,vs.TADDR
FROM v$session vs
WHERE vs.sid IN (SELECT vs2.blocking_session
FROM v$session vs2
WHERE vs2.blocking_session IS NOT NULL)
4、将上述会话,即会话1kill掉
在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为:
alter system kill session 'sid,serial#' ;