J. Laurindo, acho que essa seria a forma correta de fazer só que iria me
dar bastante trabalho e consequentemente consumir um tempo que já não tenho.

Bom, resolvi de outra forma o problema. Fiz uma validação dentro da PROC
mesmo, só verifico se a data atual está entre o dia 10 e o ultimo dia do
mês atual, se a condição for valida eu executo o resto da proc. O JOB
coloquei para executar todo dia.

Acho que não ficou legal e que não é o correto. Enfim, o que você acha
disso? é uma gambiarra?

Abraços
Saulo Brito


Em 6 de setembro de 2013 15:22, J. Laurindo Chiappa
<jlchia...@yahoo.com.br>escreveu:

> **
>
>
> Primeira coisa, para agendamentos mais complexos do tipo o ** IDEAL **,
> mais simples / menos trabalhoso, é vc usar a opção de executar JOBs pelo
> ORACLE SCHEDULER, que foi introduzido na versão 10g : caso vc esteja com
> RDBMS em versão mais antiga que isso, aí vai ser bem mais trabalhoso,
> provavelmente o que vc faria no caso seria criar e manter uma TABELA com os
> dias em que a procedure deve rodar e criar um JOB que dispare todo dia mas
> a cada vez leia a tabela e veja se "hoje é dia" da proc rodar, se não for
> não roda...
>
> Sendo banco 10g ou superior : pelo que vejo vc quer rodar Mensalmente, nos
> dias dos meses de 10 até 31 , então ficaria + ou - assim :
>
>
> BEGIN
> DBMS_SCHEDULER.create_job (
> job_name => 'nomedoteujob',
> job_type => 'PLSQL_BLOCK',
> job_action => 'BEGIN nomedaprocedureaserrodada; END;',
> start_date => TO_DATE('10/09/2013 ....',
> repeat_interval => 'FREQ=MONTHLY; BYMONTHDAY=10,11,12,13,14.....31;',
> end_date => TO_DATE('30/11/2013....',
> enabled => TRUE,
> comments => 'Comentários do teu job.');
> END;
> /
>
> Blz ? qquer dúvida mais sobre sintaxes e conceitos, dá um look em
> http://www.oracle-base.com/articles/10g/scheduler-10g.php e no manual
> "Oracle® Database Administrator's Guide" da tua versão de RDBMS, que vc
> terá um capítulo "Scheduling Jobs with Oracle Scheduler" , e se ainda assim
> não conseguir, retorna com os detalhes de versão que a gente tenta te
> ajudar mais...
>
> []s
>
> Chiappa
>
> OBS : só um detalhe : para se poder criar jobs normalmente o DBA ** tem **
> que te dar privilégios específicos, então Confira com o teu DBA se o seu
> usuário no banco os tem, yep ??
>
> --- Em oracle_br@yahoogrupos.com.br, Saulo Brito <saulo.brito01@...>
> escreveu
>
> >
> > Olá, sou desenvolvedor e me passaram uma tarefa de criar um JOB que
> executa
> > uma proc.
> >
> > Já fiz a proc só que nunca fiz um JOB na vida, e estou com a seguinte
> > dúvida:
> >
> > - Como faço a regra pro JOB ser executado de uma data X até o final do
> mês
> > consecutivamente?
> >
> > Por exemplo:
> >
> > dia 10/09 até dia 30/09
> >
> > e continuar
> >
> > dia 10/10 até dia 31/10
> > dia 10/11 até dia 30/11
> >
> >
> > Pesquisei no google e tentei algumas coisas sem sucesso.
> > Poderiam me ajudar? Só a regra mesmo.
> >
> >
> > Obrigado,
> >
> > Saulo Brito
> >
>
>  
>

Responder a