Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

BEGIN
  FOR r_filial IN (
    SELECT LOJ_CODIGO || LOJ_DIGITO AS CODIGO_FILIAL FROM AA2CLOJA 
    WHERE LOJ_CODIGO || LOJ_DIGITO IN(19, 35)
    ORDER BY LOJ_CODIGO, LOJ_DIGITO
  ) LOOP
    DECLARE
      v_cod_filial AA2CLOJA.LOJ_CODIGO%TYPE := r_filial.CODIGO_FILIAL;
      p_retorno VARCHAR2(30) := '';
      job_name VARCHAR2(30) := 'JOB_PROC_PRIC_PMZ_' || v_cod_filial;
    BEGIN
      DBMS_OUTPUT.PUT_LINE('Creating job: ' || job_name);
      DBMS_SCHEDULER.create_job (
        job_name        => job_name,
        job_type        => 'PLSQL_BLOCK',
        job_action      => 'BEGIN PROC_PRIC_PMZ_CST(' || v_cod_filial || '); END;',
        start_date      => SYSTIMESTAMP,
        repeat_interval => 'FREQ=HOURLY;INTERVAL=4', -- Executa a cada 4 horas
        auto_drop       => FALSE,
        enabled         => TRUE
      ); 
      DBMS_OUTPUT.PUT_LINE('Job criado: ' || job_name);
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Erro ao criar o job ' || job_name || ': ' || SQLERRM);
    END;
  END LOOP;

  DBMS_OUTPUT.PUT_LINE('Finalizada a criação e execução dos jobs');
END;


Para configurar a execução os jobs apenas uma vez por dia (à meia noite), basta mudar o comando: "repeat_interval" para "repeat_interval => 'FREQ=DAILY; BYHOUR=0; BYMINUTE=0; BYSECOND=0',"

...