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; |