RES: [oracle_br] Re: Problemas no uso da funçã o UPPER()

2006-08-30 Por tôpico Marcelo
Não seria mais simples escrever o SQL assim:
 
SELECT P.*
FROM EST_PRODUTOS P
WHERE UPPER(P.EST_ST_ALTERNATIVO) = UPPER(‘111.222.333/N’);
 
At.
 
Marcelo Alberto Lauschner 
Depto. De Informática
Auto Pratense Ltda
* - Fax: (0XX54) 3242-3615
* - E-mail:  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]
 
  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Josinei Barbosa da Silva
Enviada em: quarta-feira, 30 de agosto de 2006 16:27
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Problemas no uso da função UPPER()
 
Desculpe, foi erro de digitação sim...

Pra deixar o código mais limpo, só anexei aqui uma subconsulta da
minha instrução achando que ela era o problema. Falha minha. Na
verdade o problema estava no todo (acabamos de descobrir)

Veja, se executar a instrução abaixo, não funciona (tb não dá erro):

SELECT * 
FROM(SELECT * 
 est_produtos
) p
WHERE upper(p.pro_st_alternativo) = upper('111.222.333/N');


Agora, se faço como abaixo, funciona:

SELECT * 
FROM(SELECT pro_st_alternativo
 FROM est_produtos
) p
WHERE upper(p.pro_st_alternativo) = upper('111.222.333/N'); 

Ou seja, se usar o asterisco na subconsulta e uma de suas colunas na
cláusula WHERE da instrução principal, ocorre o problema.

Resta saber porque! Alguém saberia dizer se tem uma explicação
aceitável ou se é um bug do Oracle?

Obrigado pela atenção.

--- Em oracle_br@yahoogrupos.com.br, Andre Santos
[EMAIL PROTECTED] escreveu

 Josinei
 
 Não sei se foi erro de digitação, mas numa consulta a tabela está como
 PRODUTOS e na outra consta EST_PRODUTOS.
 
 [ ]
 
 André
 
 
 Em 30/08/06, Josinei Barbosa da Silva [EMAIL PROTECTED]
 escreveu:
 
   Boa tarde a todos.
 
  Alguém já viu algo assim:
 
  Eu tenho a seguinte select:
 
  SELECT *
  FROM produtos p
  WHERE upper(p.pro_st_alternativo) = upper('111.222.333/N');
 
  Executo isso e não retorna nada.
  Se eu alterar para a select abaixo, retorna o registro desejado:
 
  SELECT *
  FROM est_produtos p
  WHERE p.pro_st_alternativo = '111.222.333/N';
 
 
  A versão do Oracle Database usado é 9.2.0.4
 
  Se alguém puder me ajudar, fico muito grato.
 
 
 
 
  
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]






 


[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/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
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

 




RES: [oracle_br] Re: Problemas no uso da funçã o UPPER()

2006-08-30 Por tôpico Marcelo
Josinei, 
Desculpe-me dar uma resposta assim também, pois pensei que a dúvida era
somente esta.
Quanto ao fato de usar ‘*’ dentro da subconsulta, eu também já tentei algo
assim , usando ROW_NUMBER(), e não funcionou.
Testei varias vezes e cheguei a conclusão de que dentro da subconsulta é
necessário declarar as colunas envolvidas.
Posso estar enganado, pois não sou DBA formado, mas do que aprendi
‘apanhando’ é isso que sei. [rss..].
 
 
At.
Marcelo Alberto Lauschner 
Depto. De Informática
Auto Pratense Ltda
* - Fax: (0XX54) 3242-3615
* - E-mail:  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]
 
  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Josinei Barbosa da Silva
Enviada em: quarta-feira, 30 de agosto de 2006 16:53
Para: oracle_br@yahoogrupos.com.br
Assunto: RES: [oracle_br] Re: Problemas no uso da função UPPER()
 
Então Marcelo, seria mais a SQL original é bem maior que essa  e tem
uma série de amarrações com a subconsulta.
Coloquei essa de exemplo para simplificar a explicação.

--- Em oracle_br@yahoogrupos.com.br, Marcelo [EMAIL PROTECTED] escreveu

 Não seria mais simples escrever o SQL assim:
  
 SELECT P.*
 FROM EST_PRODUTOS P
 WHERE UPPER(P.EST_ST_ALTERNATIVO) = UPPER(`111.222.333/N');
  
 At.
  
 Marcelo Alberto Lauschner 
 Depto. De Informática
 Auto Pratense Ltda
 * - Fax: (0XX54) 3242-3615
 * - E-mail:  mailto:[EMAIL PROTECTED]
 [EMAIL PROTECTED]
  
   _  
 
 De: oracle_br@yahoogrupos.com.br
[mailto:[EMAIL PROTECTED] Em
 nome de Josinei Barbosa da Silva
 Enviada em: quarta-feira, 30 de agosto de 2006 16:27
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Re: Problemas no uso da função UPPER()
  
 Desculpe, foi erro de digitação sim...
 
 Pra deixar o código mais limpo, só anexei aqui uma subconsulta da
 minha instrução achando que ela era o problema. Falha minha. Na
 verdade o problema estava no todo (acabamos de descobrir)
 
 Veja, se executar a instrução abaixo, não funciona (tb não dá erro):
 
 SELECT * 
 FROM(SELECT * 
  est_produtos
 ) p
 WHERE upper(p.pro_st_alternativo) = upper('111.222.333/N');
 
 
 Agora, se faço como abaixo, funciona:
 
 SELECT * 
 FROM(SELECT pro_st_alternativo
  FROM est_produtos
 ) p
 WHERE upper(p.pro_st_alternativo) = upper('111.222.333/N'); 
 
 Ou seja, se usar o asterisco na subconsulta e uma de suas colunas na
 cláusula WHERE da instrução principal, ocorre o problema.
 
 Resta saber porque! Alguém saberia dizer se tem uma explicação
 aceitável ou se é um bug do Oracle?
 
 Obrigado pela atenção.
 
 --- Em oracle_br@yahoogrupos.com.br, Andre Santos
 [EMAIL PROTECTED] escreveu
 
  Josinei
  
  Não sei se foi erro de digitação, mas numa consulta a tabela está como
  PRODUTOS e na outra consta EST_PRODUTOS.
  
  [ ]
  
  André
  
  
  Em 30/08/06, Josinei Barbosa da Silva [EMAIL PROTECTED]
  escreveu:
  
Boa tarde a todos.
  
   Alguém já viu algo assim:
  
   Eu tenho a seguinte select:
  
   SELECT *
   FROM produtos p
   WHERE upper(p.pro_st_alternativo) = upper('111.222.333/N');
  
   Executo isso e não retorna nada.
   Se eu alterar para a select abaixo, retorna o registro desejado:
  
   SELECT *
   FROM est_produtos p
   WHERE p.pro_st_alternativo = '111.222.333/N';
  
  
   A versão do Oracle Database usado é 9.2.0.4
  
   Se alguém puder me ajudar, fico muito grato.
  
  
  
  
   
  
  
  
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 
  
 
 
 [As partes desta mensagem que não continham texto foram removidas]





 


[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/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
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