Pular para o conteúdo
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #101327
    DBA_LUCAS
    Participante

      Caros amigos , estou precisando da ajuda para fazer um JOB , e como nunca fiz estou com um pouco de dificuldade , tenho uma procedure e quero executa-la através de um job a cada 10 dias , alguem pode me ajudar ?

      #101329
      felipeg
      Participante

        Se você está na versão 10g ou superior sugiro usar scheduler.
        Mas é um negócio meio complicadinho, da uma lida nesses links abaixo:

        http://www.oracle-base.com/articles/10g … ler10g.php
        http://download.oracle.com/docs/cd/B193 … _sched.htm

        Seu exemplo ficaria mais ou menos assim


        begin DBMS_SCHEDULER.create_job (
        job_name => 'Exec_SUA_PROCEDURE',
        job_type => 'PLSQL_BLOCK',
        job_action => 'BEGIN SUA_PROCEDURE; END;',
        start_date => '18/02/11 23:30:00 -02:00',
        repeat_interval => 'FREQ=DAILY; INTERVAL=10',
        end_date => NULL,
        enabled => TRUE,
        comments => 'Execução do procedimento SUA_PROCEDURE'); END;

        E para eliminar


        begin DBMS_SCHEDULER.drop_job ('Exec_SUA_PROCEDURE') END;

        Lembrando que seus parâmetros de data são baseados nas configurações do seu banco.

        Atenciosamente,
        Felipe.

        #101333
        jspaulonci
        Participante

          Lucas, siga o que o felipeg disse, realmente é a melhor opção, é chato, porem o SCHEDULER é mais robusto. Na versão 11g a Oracle ainda manteve o DBMS_JOB.

          #101336
          DBA_LUCAS
          Participante

            Não esta funcionando , estou logando na base rodando o script abaixo , minha procedure chama EXPIRA_AF , estou fazendo algo errado ? O que seria o -2:00 no start_date ?


            begin DBMS_SCHEDULER.create_job (
            job_name => 'Exec_EXPIRA_AF',
            job_type => 'PLSQL_BLOCK',
            job_action => 'BEGIN SUA_PROCEDURE; END;',
            start_date => '20/10/2011 17:09:00 -02:00',
            repeat_interval => 'FREQ=DAILY; INTERVAL=10',
            end_date => NULL,
            enabled => TRUE,
            comments => 'Teste Lucas');
            END;

            #101337
            felipeg
            Participante

              Duas coisas

              job_action => ‘BEGIN SUA_PROCEDURE; END;’,
              start_date => ’20/10/2011 17:09:00 -02:00′,

              O nome da sua proc é SUA_PROCEDURE?
              Da um select systimestamp from dual e vê a sua configuração de datahora

              Atenciosamente,
              Felipe.

              #101338
              DBA_LUCAS
              Participante

                Deu certo ! Muito obrigado galera !

                #101339
                felipeg
                Participante

                  De nada cara…

                  Mas já fica a dica, estude bem sobre essa funcionalidade, dá pra fazer MUITA coisa com ela 8)

                  Atenciosamente,
                  Felipe.

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