Pular para o conteúdo
  • Este tópico contém 3 respostas, 3 vozes e foi atualizado pela última vez 14 anos, 5 meses atrás por leandrolbs.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #101283
    leandrolbs
    Participante

      Pessoal, preciso de um select semelhante a este:


      select count(*) into vEhJob from v$session v
      where v.SID = SYS_CONTEXT('userenv','SID')
      and v.event = 'jobq slave wait';

      Este não funciona, pois o event do JOB nem sempre é este…

      queria algo assim..rsss

      select count(*) into vEhJob from v$session v
      where v.SID = SYS_CONTEXT('userenv','SID')
      and v.EHJOB = 'S' --kkkkkk

      Existe alguma maneira de identificar este JOB na session? (Não funcionou itilizando as tabelas: dba_jobs e dba_jobs_running );

      #101284
      ithigvo
      Participante

        Grande Leandro..

        Este select tem cara de que vai ser inserido dentro de alguma trigger, correto?

        Se sim, tente validar se ele é job a partir de outros campos da v$session, por exemplo type, host, user, program.

        Se você controlar o objeto, ou código que está sendo executado pelo job, pode facilitar sua vida utilizando a package DBMS_APPLICATION_INFO.SET_MODULE, com ela você pode alterar o valor das colunas MODULE e ACTION da v$session.

        Ficaria mais ou menos assim:

        dentro do JOB, no inicio do código:

        DBMS_APPLICATION_INFO.SET_MODULE('EHJOB', 'Job etc e tal');

        e no seu select:

        select count(*) into vEhJob from v$session v
        where v.SID = SYS_CONTEXT('userenv','SID')
        and v.module = 'EHJOB' --- hehe

        Outra opção é utilizar a view que você citou, dba_jobs_running, mas fazendo um join com a coluna SID.

        #101286
        rman
        Participante

          @leandrolbs

          Segue um artigo sobre o pacote DBMS_APPLICATION_INFO:

          http://mytracelog.blogspot.com/2011/09/ … ninfo.html

          #101287
          leandrolbs
          Participante

            @rman, obrigado pelo artigo, ficou bem claro, e muito bem explicado.. vlw…

            @ithigvo, é um trigger after logon, portanto tenho erros nesta trigger quando se trata de JOB, por as tabelas que citei não deu certo…

            Quando a package recomendada, não é possivel a utilização visto o grau de manutenção das aplicações.

            Queria mesmo, criar um “IF” dentro da minha trigger, onde será executado uma serie de blocos somente se a sessão não for JOB;

            Obrigado.

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.