Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso ottenere Oracle, vedere quali procedure sono in esecuzione?

A seconda delle tue esigenze, questo potrebbe essere sufficiente (ma si basa sull'accesso a v$session e dba_objects):

select 'CALLED PLSQL', vs.username, d_o.object_name -- whatever info you need
  from dba_objects d_o
       inner join
       v$session vs
          on d_o.object_id = vs.plsql_entry_object_id
union all
select 'CURRENT PLSQL', vs.username, d_o.object_name
  from dba_objects d_o
       inner join
       v$session vs
          on d_o.object_id = vs.plsql_object_id

Come da documenti:

PLSQL_ENTRY_OBJECT_ID - ID del sottoprogramma PL/SQL più in alto nello stack; NULL se non è presente alcun sottoprogramma PL/SQL nello stack

PLSQL_OBJECT_ID - ID oggetto del sottoprogramma PL/SQL attualmente in esecuzione; NULL se si esegue SQL