Obs : lembro DE NOVO que isso só funciona SE o PL/SQL está rodando neste 
momento : se vc quer ter uma AUDITORIA (ie, um registro PERMANENTE de quem 
rodou o que e quando, não importa se está rodando no momento ou não) eu 
Recomendo ativar a Auditoria interna do RDBMS Oracle, vide na doc o comando 
AUDIT....

[]s

  Chiappa
 

---Em oracle_br@yahoogrupos.com.br, <jlchia...@yahoo.com.br> escreveu:

 Claro que tem, DESDE QUE o PL/SQL (seja qual for : Proc, Package, Func, etc) 
esteja rodando NESTE MOMENTO : nem sempre o DBA libera acesso (principalmente 
em bancos PROD) aos objetos internos necessários, mas tem sim.... Um exemplo :

=> crio e executo uma procedure que leva um tempinho executando :

scott@DESENV:SQL>CREATE OR REPLACE PROCEDURE proc_UM_MINUTO IS
  2  begin
  3      DBMS_LOCK.SLEEP(60);
  4* END;
scott@DESENV:SQL>/

Procedimento criado.

scott@DESENV:SQL>EXEC PROC_UM_MINUTO;


==> com o PL/SQL rodando, executo a consulta numa sessão conectada Com 
privilégios de consulta nos objs necessários :

SYS@DESENV:SQL>@running_plsqls.sql

*** Currently Executing Packages ****

TYPE      OWNER                          NAME                                  
SID     SERIAL
--------- ------------------------------ ------------------------------ 
---------- ----------
PROCEDURE SCOTT                          PROC_UM_MINUTO                        
130       6775
PACKAGE   SYS                            DBMS_LOCK                             
130       6775


==> é é isso.... A consulta em si é :

SYS@DESENV:SQL>GET running_plsqls.sql
  1  break on sid skip 1
  2  prompt **** Currently Executing Packages ****
  3  SELECT /*+ RULE */
  4    substr(DECODE(o.kglobtyp,
  5      7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE', 12, 'TRIGGER', 13,
  6  'CLASS'),1,15)  "TYPE",
  7    substr(o.kglnaown,1,30)  "OWNER",
  8    substr(o.kglnaobj,1,30)  "NAME",
  9    s.indx  "SID",
 10    s.ksuseser  "SERIAL"
 11  FROM
 12    sys.X$KGLOB  o,
 13    sys.X$KGLPN  p,
 14    sys.X$KSUSE  s
 15  WHERE
 16    o.inst_id = USERENV('Instance') AND
 17    p.inst_id = USERENV('Instance') AND
 18    s.inst_id = USERENV('Instance') AND
 19    o.kglhdpmd = 2 AND
 20    o.kglobtyp IN (7, 8, 9, 12, 13) AND
 21    p.kglpnhdl = o.kglhdadr AND
 22    s.addr = p.kglpnses
 23* ORDER BY 4, 2, 1
SYS@DESENV:SQL>

[]s

  Chiappa

Responder a