[oracle_br] Ajuda - Query Range de datas para Range de datas

2014-08-06 Por tôpico Saulo Brito saulo.brit...@gmail.com [oracle_br]
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

2014-08-06 Por tôpico Saulo Brito saulo.brit...@gmail.com [oracle_br]
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?

2014-04-28 Por tôpico Saulo Brito
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?

2014-04-28 Por tôpico Saulo Brito
É 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

2014-03-14 Por tôpico Saulo Brito
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

2014-02-18 Por tôpico Saulo Brito
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

2013-11-08 Por tôpico Saulo Brito
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

2013-10-04 Por tôpico Saulo Brito
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

2013-09-06 Por tôpico Saulo Brito
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

2013-09-06 Por tôpico Saulo Brito
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

2013-09-06 Por tôpico Saulo Brito
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

2013-09-06 Por tôpico Saulo Brito
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