Acho que vc nao entendeu o conceito, Saulo!

Funciona sim, pode testar.


2013/9/6 Saulo Brito <saulo.brit...@gmail.com>

> **
>
>
> Aqui na empresa é 11g.
>
> Milton, realmente ele deu tudo mastigado, acontece que só seria executado
> nos meses de 10 a 31. Os meses de fevereiro e que terminam em 30 não
> funcionariam. Isso é basicamente uma dúvida que tenho, funcionaria?
>
> O meu problema é justamente esse 'repeat_interval', tenho que cria-lo de
> uma forma que pegue sempre o dia 10 ao ultimo dia do mês. Todos os meses do
> ano.
>
> =/
>
>
> Em 6 de setembro de 2013 15:47, Milton Bastos Henriquis Jr. <
> miltonbas...@gmail.com> escreveu:
>
> **
>>
>>
>> Não entendi, "dar bastante trabalho" por que?
>> O Chiappa já praticamente te passou a receita prontinha de como fazer, é
>> só copiar o código dele e adaptar colocando a tua proc!
>>
>> Claro, isso considerando que vc tenha versão 10g ou mais atual, conforme
>> ele explicou no e-mail dele, já que vc não especificou a versão no seu
>> e-mail e por isso não tem como a gente adivinhar....
>>
>> Tua solução realmente ficou uma gambiarra, pois vc vai executar um JOB
>> todos os dias, inclusive nos dias que vc não precisa, consumindo assim
>> recursos de forma desnecessária.
>> Tudo bem que com a sua lógica de programação vc não vai executar a proc
>> inteira, mas de qualquer maneira vc vai ter um job sendo disparado e um
>> trecho da proc sendo executada.
>>
>> Da maneira que o Chiappa colocou ele só executa nos dias que vc realmente
>> precisa.
>>
>>
>>
>>
>>
>> 2013/9/6 Saulo Brito <saulo.brit...@gmail.com>
>>
>>> **
>>>
>>>
>>> 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