Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-00918:kolumna niejednoznacznie zdefiniowana w SELECT *

Projekcja zapytania może mieć tylko jedno wystąpienie o podanej nazwie. Jak pokazuje twoja klauzula WHERE, masz kilka tabel z kolumną o nazwie ID. Ponieważ wybierasz * Twoja projekcja będzie miała kilka kolumn zwanych ID. Albo byłoby, gdyby nie kompilator rzucający ORA-00918.

Rozwiązanie jest dość proste:będziesz musiał rozwinąć projekcję, aby jawnie wybrać nazwane kolumny. Następnie możesz pominąć zduplikowane kolumny, zachowując tylko (powiedzmy) COACHES.ID lub użyć aliasów kolumn:coaches.id as COACHES_ID .

Być może wydaje ci się, że często piszesz, ale to jedyny sposób. Jeśli jest to dla ciebie pocieszenie, SELECT * jest uważana za złą praktykę w kodzie produkcyjnym:jawnie nazwane kolumny są znacznie bezpieczniejsze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORDER BY z zapytaniem wewnętrznym, z brakiem prawego nawiasu ORA-00907

  2. Jak napisać aplikację .Net, która działa zarówno z SqlServer, jak i Oracle (teraz System.Data.OracleClient jest przestarzały)

  3. Czy w Oracle można WSTAWIĆ lub UAKTUALNIĆ rekord za pomocą widoku?

  4. REGEXP_COUNT() Funkcja w Oracle

  5. Dialekt hibernacji dla Oracle Database 11g?