Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

ORA-00918 Aqui sí, y aquí no

Estas en el tema de ORA-00918 Aqui sí, y aquí no en el foro de Oracle en Foros del Web. Buenas, os hago la consulta que decidirá si realmente sois unos pros del Oracle como llevais demostrando tiempo, o no. A ver, tengo una BD ...
  #1 (permalink)  
Antiguo 25/08/2011, 06:55
 
Fecha de Ingreso: agosto-2011
Mensajes: 7
Antigüedad: 7 años, 7 meses
Puntos: 0
ORA-00918 Aqui sí, y aquí no

Buenas,

os hago la consulta que decidirá si realmente sois unos pros del Oracle como llevais demostrando tiempo, o no.

A ver, tengo una BD Oracle 10.2.0.4 y tengo una consulta. Esa consulta no da fallo alguno, aunque, a mi manera de verlo, debería, pero no es el caso.

Tengo otra BD Oracle 10.2.0.5, y es igual igual a la anterior. Si ejecuto la consulta, como debería pasar en la primera, me salta el error ORA-00918: column ambiguously defined.

La consulta de la discordia:
select * from coche fabrica
left outer join cochedelexpediente fabricaexpe on (fabricaexpe.fabricaID = fabrica.fabricaID)
left outer join aviones avi on (avi.matricula = fabricaexpe.matricula)
left outer join tanques tanq on (tanq.tanqID = avi.tanqID)
where
((NULL) IS NULL OR (NVL(tanqid,0)=nvl(NULL,0)))
AND ((NULL) IS NULL OR (NVL (matricula,0)=nvl(NULL,0))));
Me estoy volviendo loco por saber el porque en una sí y en otra no, la única diferencia son las versiones, pero viendo la documentación de ORACLE, lo único que han cambiado de una a otra ha sido el "UNDO".

A ver si alguno de ustedes puede dar algo de luz en el asunto, y saber más o menos por donde puede ir la cosa.

Muchisimas gracias.
Un saludo

P.D.: Me estreno en el foro!!
  #2 (permalink)  
Antiguo 26/08/2011, 00:47
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 12 años, 8 meses
Puntos: 56
Respuesta: ORA-00918 Aqui sí, y aquí no

Hola,

Cita:
select * from coche fabrica
left outer join cochedelexpediente fabricaexpe on (fabricaexpe.fabricaID = fabrica.fabricaID)
left outer join aviones avi on (avi.matricula = fabricaexpe.matricula)
left outer join tanques tanq on (tanq.tanqID = avi.tanqID)
where
((NULL) IS NULL OR (NVL(tanqid,0)=nvl(NULL,0)))
AND ((NULL) IS NULL OR (NVL (matricula,0)=nvl(NULL,0))));
Quizá sea debido a que no indicas la tabla a que pertenecen estos campos, que se llaman igual para más de una tabla de las que participan en los join.

saludos.
  #3 (permalink)  
Antiguo 26/08/2011, 00:54
 
Fecha de Ingreso: agosto-2011
Mensajes: 7
Antigüedad: 7 años, 7 meses
Puntos: 0
Respuesta: ORA-00918 Aqui sí, y aquí no

No es eso lo que preguntaba. Esta claro que el fallo que da es por eso.

Mi pregunta es, porque en una version no da el fallo, ejecuta la query, y en la otra version da el fallo por lo que bien indicas.

En una version si, y en otra no. Y mirando la documentacion de ORACLE, el cambio de version es solo para el UNDO

Gracias por contestar
  #4 (permalink)  
Antiguo 26/08/2011, 01:06
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 12 años, 8 meses
Puntos: 56
Respuesta: ORA-00918 Aqui sí, y aquí no

Ah, disculpa,

Leí por algún sitio que Oracle contiene varios bugs sobre "ambigous columns", aunque no en concreto cuales ni porqué.

Periódicamente salen parches que tratan de solucionar algunos de ellos.

Lo leí en alguna parte. Voy a buscar por mi Historial o por Google a ver si encuentro algo y te pongo la URL.

Saludos.
  #5 (permalink)  
Antiguo 26/08/2011, 01:12
 
Fecha de Ingreso: agosto-2011
Mensajes: 7
Antigüedad: 7 años, 7 meses
Puntos: 0
Respuesta: ORA-00918 Aqui sí, y aquí no

¿Sabes si tocando el parámetro OPTIMIZER_FEATURES_ENABLE de la más actualizada(10.2.0.5), estableciéndolo a la 10.2.0.4 podría hacer que fueran iguales?

Es que el problema principal es que necesito que aparezcan los mismos fallos y no-fallos en las dos bases de datos, sino detectar los problemas sería muy costoso.

Te agradezco la búsqueda. Muchisimas gracias jchuk!!
  #6 (permalink)  
Antiguo 26/08/2011, 01:18
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 12 años, 8 meses
Puntos: 56
Respuesta: ORA-00918 Aqui sí, y aquí no

Hola,

Pues la verdad es que no lo sé, pero quizás. También puedes probar con el parámetro COMPATIBLE, que limita el uso de funcionalidades nuevas entre versiones.

No me suena que fuera esta página la que leí, pero hace tiempo ya. En cualquier caso, al buscar he encontrado esta que dice algo al respecto

Saludos.
  #7 (permalink)  
Antiguo 29/08/2011, 00:43
 
Fecha de Ingreso: agosto-2011
Mensajes: 7
Antigüedad: 7 años, 7 meses
Puntos: 0
Respuesta: ORA-00918 Aqui sí, y aquí no

Muchísimas gracias por responder. La verdad es que el caso se las trae. Vamos a ver el tema del OPTIMIZER_FEATURES_ENABLE a ver como va. El COMPATIBLE que me has puesto no lo conozco y he buscado información y es muy similar, creo.

Etiquetas: aquí
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:22.