如何检查 user/session 是否正在使用包?
How to check if a user/session is using a package ?
我有一个包裹 ARG_AP_INVOCE_PKG
已进入 INVAILD 状态。
编译后还没有进入VAILD状态。
所以我与我的开发人员进行了交叉核对,发现其中一位正在开发它。
在这种情况下如何找到另一个正在使用的包 user/session?
请向我提供查询。
谢谢!
您可以检查 V$SESSION
并找到 id
和 instance
来检测谁阻止了您
check this link
您可以查询 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
我有一个包裹 ARG_AP_INVOCE_PKG
已进入 INVAILD 状态。
编译后还没有进入VAILD状态。
所以我与我的开发人员进行了交叉核对,发现其中一位正在开发它。
在这种情况下如何找到另一个正在使用的包 user/session?
请向我提供查询。
谢谢!
您可以检查 V$SESSION
并找到 id
和 instance
来检测谁阻止了您
check this link
您可以查询 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