问题现象:
在pl/sql编译包或者是存储过程procedure等,编译一直未响应。
问题原因:
ORACLE 存储过程或包被锁,编译不了
问题解决方法:
第一步:查找存储过程被哪些session锁住而无法编译 select * FROM dba_ddl_locks where name =upper('heb_sdb_pay_opr_pkg'); 1. 第二步:通过第一步得到的session_id,得到sid和serial# select t.sid,t.serial# from v$session t where t.sid=&session_id; 1. 第三步: kill 相关session alter system kill session 'sid,serial#'
结束被锁的表
问题现象:
后台数据库操作某一个表时发现一直出于假死状态,可能是该表被某一用户锁定。
问题解决步骤:
第一步:查询哪些表被用户锁住
SELECT object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid;
1.
2.
3.
4.
第二步:找到被锁的表,解锁
--alter system kill session 'sid, serial#';
ALTER system kill session '23, 1647';
1.
2.