2011-04-28 21 views
7

Tengo un problema de Oracle, aquí está mi selecto:Oracle crear tabla como select con la condición recuento máximo

create table new_table as 
select 
idprod as product_id, descr as description 
from old_table p where updateNum = (select max(updateNum) from old_table pp where pp.idprod = p.idprod); 

esta consulta me da un error genérico sin ninguna explicación. SQL Developer me dicen:

"error a partir de la línea 7 de comando: [...] informe de error:
de comandos SQL: create table
Error: Advertencia: La ejecución completa con la advertencia"

pero crea la tabla y los datos en su interior parecen ser correctos.

¿Algunas pistas?

Respuesta

5

Las versiones anteriores de SQL Developer tienen un error que les hace emitir una advertencia similar después de CREATE TABLE: ver this OTN Forums post.

Dado que la tabla se crea y completa con los datos correctos, la instrucción CREATE TABLE es correcta. Si quiere estar seguro, intente ejecutar la declaración de SQL * Plus.

6

Oracle emite el mensaje "Fallido: advertencia: ejecución completada con advertencia" en una sentencia CREATE TABLE cada vez que utiliza una función en una columna con valores NULL. Esto sucede a menudo cuando usa un CASO CUANDO o DECODIFICADO y no usa un predeterminado para ocuparse de los NULL (por ejemplo, ELSE 0). Esta es también la solución al mismo problema indicado en https://forums.oracle.com/forums/thread.jspa?threadID=723332.

Para evitar problemas: asegúrese de no utilizar una función (por ejemplo, max, suma) en una columna con valores NULL en una CREATE TABLE AS.

Cuestiones relacionadas