[oracle_br] Ajuda - Query Range de datas para Range de datas
Boa tarde, Alguém poderia me ajudar com uma query? Tenho uma tabela com 2 colunas de data, sendo data_inicio e data_fim; Tenho dois parâmetros de data, sendo data_inicio e data_fim também; O que eu queria fazer é: Dentro de todas datas iniciais e finais da tabela verificar se naquele range dos 2 parâmetros existe alguém na tabela ou se a união de um registro na tabela com outro pega todo esse range; Sei como resolver com o código, mas queria deixar como uma function. Como faço a união das datas? Simplesmente estou viajando nas querys e acho que já deu tela azul no meu cérebro. Se alguém puder dar a luz do caminho ficaria grato. Abraços!
Re: [oracle_br] Re: Ajuda - Query Range de datas para Range de datas
Fala Chiappa, obrigado pela resposta Bom, minha especificação mudou de uma hora para outra e tive que fazer de outra forma ... e já fiz .. hehe Conhecia este link e tenho uma função parecida com ele que no caso verifica em um range de datas se existem registros que estão dentro daquela situação. Tentei adapta-lo só que não deu muito certo. --- O problema com exemplos era: supondo que na minha tabela tem: id | dt_ini | dt_fim 1 | 01/01/2014 | 15/01/2014 2 | 16/01/2014 | 18/01/2014 3 | 21/01/2014 | 25/01/2014 supondo que tenho os ranges passados por parâmetros a) 01/01/2014 e 20/01/2014 b) 15/01/2014 e 21/01/2014 c) 22/01/2014 e 25/01/2014 A query do exemplo atenderia se fossem válidos furos entre as datas, ou seja, funcionaria para as 3 letras (a), (b) e (c) que retornariam os registros 1 - 2, 1 - 2 e - 3 respectivamente. Só que a única correta é a (c) que traz o registro 3 sem furos na data especificada agora supondo que tenho a) 02/01/2014 e 18/01/2014 b) 02/01/2014 e 19/01/2014 Então minha tela azul estava em trazer sem furos os registros. No exemplo de cima, sei que a letra (a) me traria os registros -1 e -2. Já a letra (b) não me deveria trazer nenhum porque não se tem um range completo na base que compreende 02/01 até 19/01... faltaria 1 dia. Não sei se fui claro, se estou viajando. Talvez tenha alguma forma simples de fazer que eu ainda não sei qual é. Como falei no inicio minha especificação mudou e acabou me salvando de cair nesse caso, mas segue o exemplo onde acho que consegui explicar e mesmo não tendo que fazer, gostaria de tirar a dúvida de como faria. kkk Obrigado! Em 6 de agosto de 2014 14:59, jlchia...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Bem, só no verbal sem nenhum exemplinho é meio difícil de pensar, mas ao que entendi vc quer ter dois ranges de datas e quer comparar esses dois ranges, e verificar se há intersecção entre eles ? Se sim, dá um look em https://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:4921012347969 que vc encontra algumas possibilidades diversas []s Chiappa
[oracle_br] Dúvida consulta, como fazer?
Alguém pode dar uma luz em como fazer uma consulta? Tenho registros numa tabela que possui n campos, entre eles existem 2 do tipo data, esses campos são data inicio e data fim. Tenho também um valor de uma data qualquer. Gostaria de fazer o seguinte: Obter somente aqueles registros que estão dentro do range de data inicio e data fim. Ou seja: tabela: DATA_INICI DATA_FINAL 1 23/03/2014 28/03/2014 1 25/03/2014 26/03/2014 meu valor: 25/03/2014 É meio que o between inverso. Sei que tenho que fazer com Connect by level, + como? Não entendo direito como esse treco funciona e nem quando utiliza-lo, queria aprender sobre ele também se alguém tiver alguma referência ficaria agradecido. Desculpem a pergunta de noob. Obrigado, Saulo Brito
Re: [oracle_br] Dúvida consulta, como fazer?
É Milton, simples e fácil e eu quebrando a cabeça. Era só inverter mesmo. Obrigado! Em 28 de abril de 2014 18:36, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Não sei se entendi direito se for o que estou pensando: Select * from tabela where valor_data = data_inicial and valor_data = data_final Ou seja... vc está passando pra query uma data de entrada (valor_data) e vc quer que retorne todos registros em que essa data de entrada esteja entre a data inicial e final. Se for só isso, simples, é o SQL acima. Em 28 de abril de 2014 18:27, Saulo Brito saulo.brit...@gmail.comescreveu: Alguém pode dar uma luz em como fazer uma consulta? Tenho registros numa tabela que possui n campos, entre eles existem 2 do tipo data, esses campos são data inicio e data fim. Tenho também um valor de uma data qualquer. Gostaria de fazer o seguinte: Obter somente aqueles registros que estão dentro do range de data inicio e data fim. Ou seja: tabela: DATA_INICI DATA_FINAL 1 23/03/2014 28/03/2014 1 25/03/2014 26/03/2014 meu valor: 25/03/2014 É meio que o between inverso. Sei que tenho que fazer com Connect by level, + como? Não entendo direito como esse treco funciona e nem quando utiliza-lo, queria aprender sobre ele também se alguém tiver alguma referência ficaria agradecido. Desculpem a pergunta de noob. Obrigado, Saulo Brito
Re: [oracle_br] OFF-TOPIC :: componente boleto bancario pra ecommerce
https://boletonet.codeplex.com/ Em 14 de março de 2014 14:46, angelo angelolis...@gmail.com escreveu: boa tarde amigos, Meio off-topic, mas como no final tudo cai no banco de dados.. Essa é pra quem trabalha com ASP.NET na empresa.. Se vc também programa, pergunto, conhece algum componente que rode em dotnet de preferencia que gere boleto bancário? Mesmo que seja pago. Detalhe, estou fugindo de componente COM A pergunta é meio off-topic mas como no final cai tudo no banco.. ainda mais se vc administra uma base de um e-commerce.. Pois até então estamos utilizando o componente do Cobrebem, mas este já deu, pois só executa em ambiente Windows 32 bit, segundo o site, e nao há versao pra windows 64bit.. ou seja, ja era vamos ter que comprar algum outro se for o caso, ou desenvolver um. Isso está impactando no processo de migração do site para o servidor novo (64bit). Fazendo testes (hoje fui o beta tester da rodada) o processo de pedido, conclusão vai tudo OK. Mas na hora de imprimir o boleto bancário, dá erro e as mensagens de erros sao bem claras com relação ao componente []s angelo
Re: [oracle_br] RE: Tunning de Queries
Calma gente .. tem desenvolvedor na lista (eu) que gosta de escrever queries com qualidade (pelo menos tento). 2014-02-17 20:14 GMT-03:00 Roland Martins dadim...@yahoo.com.br: Rapaz, o que vemos por aí é a mesma coisa: o desenvolvedor escreve, quem tuna é o DBA. Visão errada esta, vários desenvolvedores sabem ler um plano, questionar estatísticas - de objetos e de sistema, histogramas, influenciar o CBO com hints, mas a qualidade de muitos desenvolvedores é bem ruim (eles ficam ali, escrevendo queries, mexendo nos celulares, sites de compras, viagens internacionais... e o desempenho da query ? Ah, a gente manda pros DBAs, aos 47 do segundo tempo, eles resolvem - e nem sempre do melhor jeito), isso quando o problema já não aparece direto em produção (tem lugares que funciona assim, todos sabemos) e aí é você que tem o pepino pra descascar. Mas, como diz aquele provérbio chinês, é melhor acender uma vela que queixar-se da escuridão. Chiappa está correto. Adiciono o que diz Thomas Kyte (na época do 8i Release 3, mas ainda atual): Here is a short extract from a book I am working on. The short answer is if you want a 10 step guide to tuning a query, buy a piece of software. You are not needed in this process, anyone can put a query in, get a query out and run it to see if it is faster. There are tons of these tools on the market. They work using rules (heuristics) and can tune maybe 1% of the problem queries out there. They APPEAR to be able to tune a much larger percent but that is only because the people using these tools never look at the outcome -- hence they continue to make the same basic mistakes over and over and over. If you want to really be aboe to tune the other 99% of the queries out there, knowledge of lots of stuff -- physical storage mechanisms, access paths, how the optimizer works - thats the only way. of course, read: http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76965/toc.htm from cover to cover and http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76992/toc.htm as well 1.1 Efficient SQL This was probably the hardest part of the book to write - this chapter. That is not because the material is all that complex, rather because I know what people want - and I know what can be delivered. What people want: The 10 step process by which you can tune any query. What can be delivered: Knowledge about how queries are processed, knowledge you can use and apply day to day as you develop them. Think about it for a moment. If there were a 10 step or even 1,000,000 step process by which any query can be tuned (or even X% of queries for that matter), we would write a program to do it. Oh don't get me wrong, there are many programs that actually try to do this - Oracle Enterprise Manager with its tuning pack, SQL Navigator and others. What they do is primarily recommend indexing schemes to tune a query, suggest materialized views, offer to add hints to the query to try other access plans. They show you different query plans for the same statement and allow you to pick one. They offer rules of thumb (what I generally call ROT since the acronym and the word is maps to are so appropriate for each other) SQL optimizations - which if they were universally applicable - the optimizer would do it as a matter of fact. In fact, the cost based optimizer does that already - it rewrites our queries all of the time. These tuning tools use a very limited set of rules that sometimes can suggest that index or set of indexes you really should have thought of during your design. I'll close this idea out with this thought - if there were an N step process to tuning a query, to writing efficient SQL - the optimizer would incorporate it all and we would not be having a discussion about this topic at all. It is like the search for the holy grail - maybe someday the software will be sophisticated enough to be perfect in this regards, it will be able to take our SQL, understand the question being asked and process the question - rather then syntax. To me - writing efficient SQL requires a couple of things: oKnowledge of the physical organization of what I'm asked to query against. That is - the schema. Knowledge that the physical organization was actually designed in order to help me answer my frequently asked questions (refer back to the chapter on designing an efficient schema for advice in that arena) oKnowledge of what the database is capable of doing. If I did not know about skip scan indexes and what they did (we'll cover them below) - I might look at a schema and say ah hah, we are missing an index when in fact we are not. oKnowledge of all of the intricacies of SQL - from the lowly WHERE clause on up to analytics and psuedo columns. Knowledge of what using a particular construct will do to my runtime processing. oAnd most importantly of all - a
Re: [oracle_br] Tive que compartilhar
Sacanagem não consigo ver a imagem aqui do trabalho ... 2013/11/8 Fabio Prado fbifa...@gmail.com hahahaha, problemas básicos de segurança!!! 2013/11/8 Vitor Junior vitorj...@gmail.com https://pbs.twimg.com/media/BYW1WHECUAAuXM8.jpg:large Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 https://mybizcard.co/vitor.jr.385628 -- Fábio Prado www.fabioprado.net Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle
Re: [oracle_br] Expandir um site
Olá Erick .. Sou desenvolvedor e costumo passar o HTML da minha aplicação diretamente para o banco, sendo assim o conteúdo já é gravado com as tags HTML escolhidas pelo usuário. Em alguns casos, quando já existe um TEMPLATE padrão para aquele HTML gravo apenas as informações e as disponibilizo de acordo com o TEMPLATE. Eu acredito que essa tarefa é da App e não do Banco. O que deve se tomar cuidado é com Sql injection e outras coisas do tipo .. como costumo usar ORM's não tenho problema com isso. Meus 10 cents ... Abraços Em 4 de outubro de 2013 18:33, Erick Guimaraes guimaraes.er...@gmail.comescreveu: ** Olá, Existe um sistema na empresa, que tem como objetivo todo o controle dos editais públicos que ocorrem no Brasil. Esse sistema é utilizado pelo time de vendas, e temos todo o histório e acompanhamento de cada edital. O fato é que alguns sites, como por exemplo, comprasnet, publicam informações sobre o edital no formato HTML. Geralmente é acompanhado de 2 campos. Pergunta e o esclarecimento, como não sou conhecedor de programação, que acredito possa fazer isso, gostaria de saber se consigo obter essas informações de sites remotos diretamente do Oracle , jogando em uma tabela. Abs e obrigado, Erick Em 4 de outubro de 2013 08:40, josé elias ribeiro moreira jeliasmore...@gmail.com escreveu: ** Olá Eric, poderia descrever um pouco mais o seu cenário? Obrigado Em 4 de outubro de 2013 03:40, Erick Guimaraes guimaraes.er...@gmail.com escreveu: ** Ola pessoal, gostaria de sabe como posso expandir um html (tenho o endereço), através de um endereço internet e carregar para o DB? Algo em char, nada d+ -- Att: -- Elias Moreira ITIL Foundation Certified ISO 27002 Foundation Certified Especializando em banco de dados e HB - Unifacs MSN: elias_j...@hotmail.com Skype: jelias.moreira Linkedin: http://br.linkedin.com/in/jeliasmoreira/pt
[oracle_br] JOB ser executado com range de datas
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
Re: [oracle_br] Re: JOB ser executado com range de datas
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.brescreveu: ** 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
Re: [oracle_br] Re: JOB ser executado com range de datas
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
Re: [oracle_br] Re: JOB ser executado com range de datas
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