我有一个包ARG_AP_INVOCE_PKG
已进入 INVAILD 状态。
编译后,它还没有进入VAILD状态。
所以我与我的开发人员交叉检查,发现他们中的一个正在开发它。
在这种情况下如何找到另一个用户/会话正在使用哪个包?
请提供此问题。
谢谢!
答案 0 :(得分:0)
您可以查看V$SESSION
并找到id
和instance
来检测阻止您的人
检查此link
答案 1 :(得分:0)
您可以查询v $ locked_object例如
select /*+ RULE */
s.sid,
s.serial#,
p.spid "OS SID",
s.sql_hash_value "HASH VALUE",
s.username "ORA USER",
s.status,
s.osuser "OS USER",
s.machine,
s.terminal,
s.type,
s.program,
s.logon_time,
s.last_call_et,
s.sql_id,
l.process,
decode(L.locked_mode,1,'No Lock',
2,'Row Share',
3,'Row Exclusive',
4,'Share',
5,'Share Row Exclusive',
6,'Exclusive','NONE') "Lock Mode",
o.OWNER,
o.OBJECT_NAME,
o.OBJECT_TYPE
from
v$session s,v$locked_object l, dba_objects o, v$process p
where
p.addr = s.paddr and
s.sid=l.session_id and
l.object_id=o.object_id
order by sid
或者如果没有锁
,这将找到游标中正在访问的所有对象select /*+ RULE */
s.sid,
s.serial#,
p.spid "OS SID",
s.sql_hash_value "HASH VALUE",
s.username "ORA USER",
s.status,
s.osuser "OS USER",
s.machine,
s.terminal,
s.type,
s.program,
s.logon_time,
s.sql_id,
a.owner,
a.object,
a.type "OBJ TYPE"
from
v$session s,v$process p, v$access a
where
p.addr = s.paddr and
a.sid=s.sid
order by sid