Pessoal

Interessante essa dica do Chiappa...  :)

Já implementei um exemplo que está no blog do Tom Kyte:

http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkytewhocalledme.html

Ele utiliza a DBMS_UTILITY.FORMAT_CALL_STACK, como o Eduardo Schurtz havia
comentado.
Lembro que tive que fazer uma pequena alteração na posição de substrings
(provavelmente devido à versão do Oracle), mas funcionou bem.
Pode não trazer o nome da procedure dentro da package... mas traz o número
de linha.

[ ]'s

André


Em 14 de junho de 2010 20:52, José Laurindo <jlchia...@yahoo.com.br>escreveu:

>
>
> na verdade se o objetivo é saber o nome dos objetos PL/SQL que estão
> rodando neste momento, pode-se usar os objs abaixo (no caso uso num script
> sqlplus. Mas poderia ser num SQL, num PL/SQL, sem probs) :
>
> break on sid skip 1
> prompt **** Currently Executing PL/SQL Objs ****
> SELECT /*+ RULE */
> substr(DECODE(o.kglobtyp,
> 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE', 12, 'TRIGGER', 13,
> 'CLASS'),1,15) "TYPE",
> substr(o.kglnaown,1,30) "OWNER",
> substr(o.kglnaobj,1,30) "NAME",
> s.indx "SID",
> s.ksuseser "SERIAL"
> FROM
> sys.X_$KGLOB o,
> sys.X_$KGLPN p,
> sys.X_$KSUSE s
> WHERE
> o.inst_id = USERENV('Instance') AND
> p.inst_id = USERENV('Instance') AND
> s.inst_id = USERENV('Instance') AND
> o.kglhdpmd = 2 AND
> o.kglobtyp IN (7, 8, 9, 12, 13) AND
> p.kglpnhdl = o.kglhdadr AND
> s.addr = p.kglpnses
> ORDER BY 4, 2, 1
> /
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>,
> Eduardo Schurtz <eduardo.schu...@...> escreveu
>
> >
> > É Carlos, acho que não existe mesmo.
> >
> > O jeito é criar uma variável e no começo de cada procedure jogar o nome
> dela
> > para a variável. Pelo menos assim vc trabalha sempre com o nome da
> variável
> > e não precisa ficar mudando.
> >
> > Se descobrir algo melhor, posta aí pra gente.
> >
> > Abraço
> >
> > __________________________
> > *Eduardo Schurtz*
> > Oracle E-Business Consultant
> > eduardo.schu...@...
>
> > [image: LinkedIn] <http://br.linkedin.com/in/eduardoschurtz>[image:
> > Twitter]<http://twitter.com/eduardo_oracle>
> >
> >
> > 2010/6/14 Carlos Martello <carlos.marte...@...>
>
> >
> > >
> > >
> > > Raul, na verdade o que eu gostaria era de pegar o nome do objeto como
> se
> > > fosse alguma "variavel de sessao" dentro da própria procedure. Sei que
> isso
> > > não existe, mas seria algo do tipo:
> > >
> > > create or replace procedure owner.proc1 as
> > >
> > > v_proc constant varchar2(150) := *NAME_SELF_OBJECT*;
> > >
> > > begin
> > >
> > > insert into tab_log (nome_procedure, descricao)
> > > values (v_proc, 'realizando merge de tabela origem com tabela
> > > destino');
> > > commit;
> > >
> > > merge into table1........ etc;
> > > commit;
> > >
> > > insert into tab_log (nome_procedure, descricao)
> > > values (v_proc, 'esvaziando tabela origem');
> > > commit;
> > >
> > > delete * from tab2;
> > > commit;
> > > end;
> > >
> > > Em 14 de junho de 2010 16:48, Raul Francisco Costa F. de Andrade, DBA <
> > > raulf...@... <raulfdba%40gmail.com>> escreveu:
>
> > >
> > >
> > > > Este script mostra todos os usernames que estão usando determinado
> > > objeto:
> > > >
> > > > select /*+ rule */ a.SID, s.username from gv$access a, gv$session s
> > > > where object = '&NOME_OBJETO'
> > > > and s.inst_id = a.inst_id
> > > > and s.sid = a.sid
> > > >
> > > >
> > > > Espero que ajude
> > > >
> > > > Att.
> > > >
> > > > Raul
> > > >
> > > >
> > > > Em 14 de junho de 2010 15:17, Carlos Martello <
> > > > carlos.marte...@... <carlos.martello%40choice.com.br>
>
> > > > > escreveu:
> > > >
> > > > >
> > > > >
> > > > > Pessoal, boa tarde.
> > > > >
> > > > > Estou criando um package que será responsável por todo um processo
> de
> > > > > carga.
> > > > > O mesmo faz referências às diversas procedures que são executadas,
> e
> > > todo
> > > > o
> > > > > acompanhamento pode ser feito através de uma tabela que armazena o
> log
> > > de
> > > > > execução. Sendo assim, gostaria de saber se há alguma forma de
> assim
> > > como
> > > > > conseguimos capturar o username de uma sessão através do comando
> USER
> > > > > (select user from dual), capturar o nome da procedure que está
> sendo
> > > > > executada.
> > > > >
> > > > > Att,
> > > > >
> > > > > Carlos Martello.
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > ----------------------------------------------------------
> > > > Raul Francisco da Costa Ferreira de Andrade
> > > > DBA - OCA - Oracle Certified Associate
> > > > COBIT Foundation 4.1
> > > > Fone: (41)8855-8874 Brt
> > > > email: raulf...@... <raulfdba%40gmail.com>
>
> > > > Skype: raul.andrade
> > > > www.clickdba.com
> > > >
> > > > "A adversidade leva alguns a serem vencidos
> > > > e outros a baterem recordes."
> > > > William Arthur Ward
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > >
> > > > ----------------------------------------------------------
> > > > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> > > > inteira responsabilidade de seus remetentes.
> > > > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> > > >
> > > > ----------------------------------------------------------
> > > > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
> > > Procedure
> > > > » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
> VISITE:
> > > > http://www.oraclebr.com.br/
> > > > ----------------------------------------------------------
> > > > Links do Yahoo! Grupos
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a