HAVING antes do WHERE :: pior que compilou !

Este forum é dedicado a códigos errados que se encontram por aí, ou seja, coisas que não se deve fazer de jeito nenhum! Não coloque neste forum dúvidas! (apenas situações bizarras do nosso dia a dia :-)
Responder
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Pessoal

Isso eu coloco pra vocês avaliarem as coisas estranhas que ocorrem as vezes: Um SELECT com HAVING antes do WHERE !!!

No exemplo abaixo, estou simulando o erro num Oracle 8.0.6 ( 100% bugado). O pior é que na versão 8.1.7.4 isso está funcionando também :-(

Selecionar tudo

SQL> SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle8 Release 8.0.6.0.0 - Production
PL/SQL Release 8.0.6.0.0 - Production
CORE Version 4.0.6.0.0 - Production
TNS for HPUX: Version 8.0.6.0.0 - Production
NLSRTL Version 3.3.3.0.0 - Production

SQL> 
SQL> 
SQL> create or replace procedure thomas_loucura
  2  is
  3    cursor vcur is
  4          select    me.codmerc
  5          from      mercean Me,
  6                    mercfil mf
  7          having    max(flgbase)  =  'N'       ---  **** ABSURDO ****
  8          where     me.codmerc    =  mf.codmerc
  9          and       mf.codsit     <> 'E'
 10          group     by me.codmerc;
 11  
 12    vtemp number;
 13  begin
 14  
 15  
 16    open vcur;
 17    fetch vcur into vtemp;
 18    close vcur;
 19  
 20  end;
 21  /

Procedure created

SQL> 
SQL> EXEC THOMAS_LOUCURA;

PL/SQL procedure successfully completed

SQL> 
Nem fróid explica...
gokden
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 264
Registrado em: Dom, 19 Ago 2007 8:18 pm
Localização: Ribeirão Preto - SP
Lucas de Souza

OCA Developer
Analista de sistemas

nossa é mesmo cara
num tem muito sentido isso também....

aqui no 10g ele retorna esse erro:

Selecionar tudo

ORA-00933: SQL command not properly ended
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Se eu rodar o SQL direto, dá o mesmo erro.
Ele só aceita se for dentro de uma PROCEDURE ou package... :shock:
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes