Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORA-00918:kolom didefinisikan secara ambigu dalam SELECT *

Proyeksi kueri hanya dapat memiliki satu instance dari nama yang diberikan. Seperti yang ditunjukkan klausa WHERE Anda, Anda memiliki beberapa tabel dengan kolom bernama ID. Karena Anda memilih * proyeksi Anda akan memiliki beberapa kolom yang disebut ID. Atau akan terjadi jika bukan karena kompilator yang melemparkan ORA-00918.

Solusinya cukup sederhana:Anda harus memperluas proyeksi untuk memilih kolom bernama secara eksplisit. Kemudian Anda dapat meninggalkan kolom duplikat, mempertahankan hanya (katakanlah) COACHES.ID atau gunakan alias kolom:coaches.id as COACHES_ID .

Mungkin itu menurut Anda karena banyak mengetik, tetapi itu satu-satunya cara. Jika ada kenyamanan, SELECT * dianggap sebagai praktik buruk dalam kode produksi:kolom yang dinamai secara eksplisit jauh lebih aman.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menghubungkan ke database Oracle 11g dari jarak jauh

  2. Oracle tidak menghapus kursor setelah menutup set hasil

  3. Bagaimana cara menulis kueri penyisipan Oracle berparameter?

  4. Penyedia tidak kompatibel dengan versi kesalahan klien Oracle saat menggunakan Oracle.DataClient

  5. ORA-30926:tidak bisa mendapatkan set baris yang stabil di tabel sumber saat Menggabungkan tabel