Marcio, obrigado pela ajuda, não havia realmente pensado nisso. Atenciosamente. Augusto Cesar R. Costa ----- Original Message ----- From: Marcio Portes To: oracle_br@yahoogrupos.com.br Sent: Thursday, July 06, 2006 1:00 AM Subject: Re: [oracle_br] Dias úteis.
connect by level não dá pra usar com a versão 8i, só 9i em diante. Na 8i eu usava muito a all_objects porque me dá linha suficiente para a base, mas voce pode criar sua própria view de base com linhas suficientes e usar a vontade. Fica mais ou menos assim em 8i [EMAIL PROTECTED]> variable start_date varchar2(20) [EMAIL PROTECTED]> variable end_date varchar2(20) [EMAIL PROTECTED]> exec :start_date := '10/10/2005' PL/SQL procedure successfully completed. START_DATE -------------------------------- 10/10/2005 [EMAIL PROTECTED]> exec :end_date := '20/10/2005' PL/SQL procedure successfully completed. END_DATE -------------------------------- 20/10/2005 [EMAIL PROTECTED]> [EMAIL PROTECTED]> [EMAIL PROTECTED]> select dt, to_char(dt,'Day') Week 2 from ( 3 select to_date(:start_date,'dd/mm/yyyy')+rownum-1 dt 4 from all_objects 5 where rownum <= 6 to_date(:end_date,'dd/mm/yyyy')-to_date(:start_date,'dd/mm/yyyy')+1 7 ) 8 where to_char(dt, 'd') not in (7,1) 9 / DT WEEK ------------------- --------- 10/10/2005 00:00:00 Monday 11/10/2005 00:00:00 Tuesday 12/10/2005 00:00:00 Wednesday 13/10/2005 00:00:00 Thursday 14/10/2005 00:00:00 Friday 17/10/2005 00:00:00 Monday 18/10/2005 00:00:00 Tuesday 19/10/2005 00:00:00 Wednesday 20/10/2005 00:00:00 Thursday 9 rows selected. On 7/5/06, Augusto Cesar R. Costa <[EMAIL PROTECTED]> wrote: > > > Pessoal, bom dia. > Estou precisando de uma forma de retornar quais os dias da semana, excluindo os finais de semana, num determinado intervalo informado. > Procurando nas mensagens antigas do grupo achei uma mensagem do nosso amigo Marcio Portes que funciona no Oracle9i, mas precisaria de alguma solução que pudesse ser utilizada na versão 8.1.6. > http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/msg03672.html > > Tentei adaptar para Oracle8i, executei no Oracle9i para ver se o retorno era o desejado e deu certo:: > > SQL> select * from v$version; > > BANNER > ---------------------------------------------------------------- > Oracle9i Edition Release 9.2.0.7.0 - Production > PL/SQL Release 9.2.0.7.0 - Production > CORE 9.2.0.7.0 Production > > TNS for 32-bit Windows: Version 9.2.0.7.0 - Production > NLSRTL Version 9.2.0.7.0 - Production > > SQL> > SQL> select data.dt, to_char(dt,'day') > 2 from (select to_date(sysdate + 1,'dd/mm/rrrr')+level-1 dt > 3 from dual > 4 connect by level <= to_date(sysdate + 10,'dd/mm/rrrr')-to_date(sysdate,'dd/mm/rrrr')+1) data > 5 where to_char(data.dt,'d') not in (1,7); > > DT TO_CHAR(DT,'DAY') > ----------- ----------------- > 06/07/2006 thursday > 07/07/2006 friday > 10/07/2006 monday > 11/07/2006 tuesday > 12/07/2006 wednesday > 13/07/2006 thursday > 14/07/2006 friday > > 7 rows selected > > SQL> > > > Contudo, quando executo no Oracle 8i que tenho aqui também, obtenho o erro: > > > SQL> select * from v$version; > > BANNER > ---------------------------------------------------------------- > Oracle8i Edition Release 8.1.6.3.0 - Production > PL/SQL Release 8.1.6.3.0 - Production > CORE 8.1.6.0.0 Production > > TNS for 32-bit Windows: Version 8.1.6.3.0 - Production > NLSRTL Version 3.4.1.0.0 - Production > > SQL> > SQL> select data.dt, to_char(dt,'day') > 2 from (select to_date(sysdate + 1,'dd/mm/rrrr')+level-1 dt > 3 from dual > 4 connect by level <= to_date(sysdate + 10,'dd/mm/rrrr')-to_date(sysdate,'dd/mm/rrrr')+1) data > 5 where to_char(data.dt,'d') not in (1,7); > > select data.dt, to_char(dt,'day') > from (select to_date(sysdate + 1,'dd/mm/rrrr')+level-1 dt > from dual > connect by level <= to_date(sysdate + 10,'dd/mm/rrrr')-to_date(sysdate,'dd/mm/rrrr')+1) data > where to_char(data.dt,'d') not in (1,7) > > ORA-01436: CONNECT BY loop in user data > > SQL> > > > Alguém tem alguma sugestão? > Atenciosamente. > Augusto Cesar Rodovalho Costa > > > [As partes desta mensagem que não continham texto foram removidas] > > -- Marcio Portes Material Tecnico em Portugues - http://mportes.blogspot.com Practical Learning Oracle - http://mportes.blogspot.com/2006/02/practical-learning-oracle.html [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html