jueves, 17 de diciembre de 2009

Oracle Bug 4604970 : el group by no funciona

Recientemente encontre problemas con una consulta en las que usaba varios SUM y Group BY en mi version de oracle 10g. El problema era que no agregaba correctamente los datos, y que el resultado fuese correcto tenía que cambiar el orden de los campos.

Buscando por internet encontre este enlace:
http://oracle.ittoolbox.com/groups/technical-functional/oracle-sql-l/sql-result-totals-differ-with-and-without-group-by-1671408

En el que se comenta que es un bug y las soluciones. Si no aplicamos el parche la corrección para Oracle este problema puede solventarse de varias formas, que al menos a mi en mi caso concreto han funcionado cualqueira de estas dos opciones:

1) Incluir un ORDER BY en la consulta, usando uno cualquiera de los campos
2) Tal y como se indica en el link anterior, en el caso concreto de la consulta que estaba ejcutando bastó con una sóla de las alter:
alter session set "_gby_hash_aggregation_enabled" = FALSE;

o si quieremos hacer el cambio permanente
alter system set "_gby_hash_aggregation_enabled" = FALSE;

Si bien es más recomendable usar siempre los útlimos parches para nuestra BD.

No hay comentarios: