Milton e Chiappa, Obrigado pelas dicas e pelos esclarecimentos, vou testar sim e vou retirar minha gambiarra.
=) Em 6 de setembro de 2013 17:00, Milton Bastos Henriquis Jr. < miltonbas...@gmail.com> escreveu: > ** > > > 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 >>>>> > >>>>> >>>>> >>>> >>> >> > >