Informações do Ambiente:
* Versão do Oracle: Oracle Database 10g Release 10.2.0.3.0
* Sistema Operacional: MS-Windows XP
Pessoal, por favor vejam se podem me ajudar: após a instalação do Oracle 10g, notei que alguns relatórios passaram a apresentar as infos desordenadamente. Notei que seria necessário colocar um order by logo após o group by para corrigir este problema. Nas versões anteriores do Oracle isso não ocorria. Gostaria de saber se tem saída para tornar isto default no oracle 10g, como nas versões anteriores. Alguém sabe ?
Veja este exemplo:
select mo.cdsetor,
mo.cdtipodocumento,
mo.cdmaterial,
sum(mo.qtmovimento)
from movimento mo
group by mo.cdsetor, mo.cdtipodocumento, mo.cdmaterial
order by mo.cdsetor, mo.cdtipodocumento, mo.cdmaterial
* Se eu não colocar o order by, o resultado não virá nesta ordem, os cdtipodocumento, por exemplo, nem sempre aparecem agrupados...
Order by obrigatório após group by oracle 10? configuravel?
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
Cara, essa ordem default não tem regra alguma, retorna aleatoriamente, se você quer ordenado, coloca order by, funciona antes por SORTE, COINCIDENCIA, talvez foi a inserção sequencial,
não tem absolutamente nada a ver com a versão, resolva colocando o ORDER BY, é mais seguro.
não tem absolutamente nada a ver com a versão, resolva colocando o ORDER BY, é mais seguro.
-
- Rank: DBA Pleno
- Mensagens: 232
- Registrado em: Sex, 30 Mar 2007 7:26 pm
- Localização: Londrina - PR
Rafael O. Genaro
Os resultados após um group by eram trazidos ordenados devido ao algoitmo utilizado nestas versões. O fato dos resultados saírem ordenados ( de forma binária, aliás ) sempre foi um efeito colateral, e não garantido.
A partir da versão 10g o comportamento foi alterado, devido a mudanças no algoritmo de agrupamento.
O mais indicado é, sem dúvida, corrigir suas consultas colocando a cláusula order by quando necessário.
Alguns pontos interessantes sobre o assunto, se quiser dar uma olhada:
http://asktom.oracle.com/pls/asktom/f?p ... 7449124988
A partir da versão 10g o comportamento foi alterado, devido a mudanças no algoritmo de agrupamento.
O mais indicado é, sem dúvida, corrigir suas consultas colocando a cláusula order by quando necessário.
Alguns pontos interessantes sobre o assunto, se quiser dar uma olhada:
http://asktom.oracle.com/pls/asktom/f?p ... 7449124988
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante