Después de ejecutar el código siguiente, tengo una ORA-25155 error

SELECT p.prod_id, prod_name, prod_list_price,quantity_sold,cust_last_name
FROM products p NATURAL JOIN sales s NATURAL JOIN customer c
WHERE prod_id = 148;
  • awads.net/wp/2006/03/20/back-to-basics-inner-joins
  • Desde natural se une a unirse en el mismo nombre de la columna, Oracle no permite calificar las columnas (ya que prod_id puede pertenecer a varias tablas). Eliminar la p de la p.prod_id.
  • Muchas gracias Stefan
InformationsquelleAutor Victor | 2013-02-25

2 Comentarios

  1. 5

    Como se sugiere en un comentario, esta ORA-25155 error sugiere que usted está calificado el nombre de la columna «p.prod_id» en lugar de «prod_id». Que es lo que está provocando el error.

    Probar esta funcionando plenamente SQL Violín código. La consulta debe ser:

    SELECT prod_id, prod_name, prod_list_price,quantity_sold,cust_last_name
      FROM products
           NATURAL JOIN sales
           NATURAL JOIN customer
     WHERE prod_id = 148;

    Un NATURAL JOIN a través de varias mesas de unirse a un par de tablas, a continuación, unirse a la tercera tabla para el resultado y así sucesivamente. NATURAL JOIN sintaxis no tiene explícita predicado de combinación, por lo que la eliminatoria no se utilizan allí.

    • Gracias Yaroslav, u dejado claro.
  2. 2

    natural join en Oracle une dos tablas en las columnas de cada tabla que tienen nombres comunes. Por lo tanto después de la combinación, usted no debe hacer referencia a una columna que es común entre las tablas que han sido, naturalmente, a unirse con un alias, como el alias es redundante.

    Esto es similar a la forma en que using() trabaja en una cláusula join.

Dejar respuesta

Please enter your comment!
Please enter your name here