Outra pergunta, só pra garantir.... TODOS os teus casos são com ROWNUM = 1?
Teoricamente o 1 é o único caso que pode funcionar. Se for rownum = 2 ou então qualquer outro número maior, não vai funcionar nunca. Por isso que o normal é usar sempre sinal de < para fazer Top-n. Esse seu caso que nao retorna nada... é rownum = 1 mesmo? De qualquer maneira, na minha opinião, o erro aí é realmente de quem codificou. O correto é fazer "<2", e não "=1". 2013/4/18 Rafael Bahr Esposito da Rocha <rocha.ora...@gmail.com> > Boa tarde Milton, > > sim, tenho certeza sobre o funcionamento, que fazendo rownum <= funciona. > No caso que estou enfrentado a versão é 10.2.0.3. > > Há uns 6 meses passei pelo mesmo problema em uma versão do 11 e o DBA > responsável pela base do cliente atualizou um patch ou atualizou versão, > porém não tenho mais contato com ele e não sei o que ele realmente fez. > Estou tentando evitar ter que revisar todas consultas da aplicação. > > Att. > > Rafael Bahr > > Em 18/04/2013 17:08, Milton Bastos Henriquis Jr. escreveu: > >> Boa tarde Rafael >> >> Cara, eu aprendi muito tempo atrás que o correto era fazer sempre ROWNUM < >> N. >> Exemplo: se eu queria rownum = 1 (igual teu caso) eu deveria fazer rownum >> < >> 2. >> Como eu aprendi isso mais de 10 anos atrás eu realmente NÃO LEMBRO o >> motivo. >> >> O que sei é que no 10g tinha um BUG (4513695, corrigido na versão >> 10.2.0.4) >> que deixava o rownum = 1 >> muito mais lento do que o rownum < 2. >> >> Mas no seu caso vc não disse que é lentidão, disse que simplesmente não >> retorna informação, >> o que é MUITO estranho. >> Vc tem certeza absoluta que a mesma query que vc está fazendo retorna >> informação se colocar >> o "=<" ou apenas "<"? >> >> >> >> >> >> >> 2013/4/18 Rafael Bahr Esposito da Rocha <rocha.ora...@gmail.com> >> >> ** >>> >>> >>> >>> Boa tarde, >>> >>> em algumas versões do oracle (10g) ao utilizar um select com a estrutura >>> abaixo não retorna nenhuma informação. >>> >>> SELECT * >>> FROM (SELECT * >>> FROM QUALQUER_TABELA t) >>> WHERE ROWNUM = 1 >>> >>> Porém se colocar a condição <=funciona normalmente. >>> >>> Em várias consultas da aplicação utilizamos a condição rownum = 1. Existe >>> algumconfigurações ou atualização que resolva >>> este problema sem ter que alterar todas consultas da aplicação? >>> >>> Soluçãojá aplicadaem alguma consultas: >>> >>> SELECT * >>> FROM (SELECT * >>> FROM QUALQUER_TABELA t) >>> WHERE ROWNUM <= 1 >>> >>> Atenciosamente, >>> >>> Rafael Bahr >>> >>> >> >> [As partes desta mensagem que não continham texto foram removidas] >> >> >> >> ------------------------------**------ >> >> ------------------------------**------------------------------** >> ------------------------------**------------------------------**-- >> >>> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de >>> inteira responsabilidade de seus remetentes. >>> >> Acesse: >> http://www.mail-archive.com/**oracle_br@yahoogrupos.com.br/<http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/> >> ------------------------------**------------------------------** >> ------------------------------**------------------------------**-- >> >>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » >>> Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! >>> VISITE: http://www.oraclebr.com.br/ >>> >> ------------------------------**------------------------------** >> ------------------------------**------------------------------ Links do >> Yahoo! Grupos >> >> >> >> > [As partes desta mensagem que não continham texto foram removidas]