Criação do Job de limpeza em Oracle

Anterior
Próximo
Feedback
Imprimir

Criação do Job de limpeza em Oracle

Este script deve ser executado no banco de dados Oracle, com o usuário onde estão registradas as tabelas TBCOLDSEARCH e TBCOLDSEARCHRESULT. Para executar este script, o usuário deve possuir as seguintes permissões:

 

CREATE TABLE;

CREATE VIEW;

CREATE SEQUENCE;

CREATE PROCEDURE;

CREATE TRIGGER;

CREATE MATERIALIZED VIEW;

CREATE TYPE;

CREATE OPERATOR;

CREATE INDEXTYPE;

CREATE JOB.

 

É necessário alterar a data de início (start_date) da execução do Job de limpeza, a data deve estar no formato: AAAA-MM-DD. Os scripts abaixo para criação da procedure e do Job devem ser executados separadamente:

 

/*Criação da procedure*/

CREATE OR REPLACE PROCEDURE PROC_CLEANWSCOLD as

      begin

            begin              

              Delete tbColdSearchResult where ColdSearchId in (Select ColdSearchId from tbColdSearch where LastProcessDate <= sysdate and SearchStatus =2);

              update tbColdSearch set SearchStatus = 3 where LastProcessDate <=sysdate and SearchStatus = 2;

              EXCEPTION

              WHEN OTHERS THEN

              Rollback;

              return;

            end;

            commit;

end PROC_CLEANWSCOLD;

 

/*Criação do Job*/

BEGIN

      sys.dbms_scheduler.create_job(job_name => 'CLEANWSCOLD',

                                    job_type => 'STORED_PROCEDURE',

                                    job_action => 'PROC_CLEANWSCOLD',

                                    repeat_interval => 'FREQ=DAILY;INTERVAL=2;BYHOUR=0;BYMINUTE=0;BYSECOND=0',

                                    start_date => to_timestamp_tz('2011-02-25 America/Sao_Paulo', 'YYYY-MM-DD TZR'),

                                    job_class => '"DEFAULT_JOB_CLASS"',

                                    comments => 'LIMPEZA DA TABELA TBCOLDSEACRCHRESULT',

                                    auto_drop => FALSE,

                                    enabled => TRUE);

                                    sys.dbms_scheduler.set_attribute( name => 'CLEANWSCOLD', attribute => 'restartable', value => TRUE);

END;