Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #78581
    jarrel
    Participante

      Pessoal,
      Tenho uma rotina que roda todos os dias as 00:15h, esta rotina foi criada no delphi, porém preciso que seja migrada para um Schedulled Job no oracle 9i.
      Alguém poderia me ajudar fornecendo um tutorial ou how-to para executar?

      Necessito neste job :
      a) Selecione registros de uma tabela e insere em outra;
      b) Atualize dados de uma tabela.

      Desde já agradeço,

      Rubens J Rodrigues

      #78582
      Avatar photoRegis Araujo
      Participante

        Boa noite Rubens!!

        Bom, então na verdade vc precisa é de uma procedure, o JOB vai apenas rodar esta procedure.

        Bom, o que pode te ajudar é a procedure abaixo!!!


        [color=red]
        [size=2]CREATE OR REPLACE PROCEDURE SP_ATUALIZDADOS IS

        CURSOR CCURSOR IS
        SELECT P.COLUNA_X
        FROM TABELA_X
        WHERE “PARAMETRO_DO_WHERE”
        AND ROWNUM < 1001;

        BEGIN

            INSERT INTO TABELA1 
              (CAMPO1, CAMPO2, CAMPO3, CAMPO4, CAMPO5)
            SELECT (CAMPO1, CAMPO2, CAMPO3, CAMPO4, CAMPO5) FROM TABELA2;
        

        FOR I IN 1..1000 LOOP
        FOR RCURSOR IN CCURSOR LOOP

          UPDATE TABELA_Y P 
                SET P.COLUNA_Y = &quot;OQUE_VC_QUIZER&quot; 
                   WHERE P.COLUNA_Y = RCURSOR.COLUNA_X;
          COMMIT;
        END LOOP;
        

        END LOOP;

        END SP_ATUALIZDADOS;[/size][/color]

        Ai depois é só criar um JOB para rodar esta procedure!!!

        Abraços!!!

        Regis Araujo
        DBA Oracle Jr

        #78607
        gustavodesa
        Participante

          Você pode agendar o job com o script abaixo

          DECLARE
          X NUMBER;
          BEGIN
          SYS.DBMS_JOB.SUBMIT
          ( job => X,
          what => ‘ONO.LIGA_VINCULOS;’,
          next_date => to_date(’20/12/2006 06:00:00′,’dd/mm/yyyy h24:mi:ss’),
          interval => ‘TRUNC(SYSDATE+1)+24/24’,
          no_parse => FALSE );
          END;
          /

          na variavel WHAT, você chama a procedure a ser executada.
          Na variavel interval está agendado para executar todos os dias as 24:00.

          Qualquer coisa é só pesquisar no google sobre DBMS_JOB.

          Espero ter ajudado

          Gustavo – CSIWAY
          DBA Oracle Júnior

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