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

Oracle mengabaikan kesalahan pengidentifikasi yang tidak valid di subquery

Anda belum memenuhi syarat nama kolom Anda. Jadi, Anda pikir Anda sedang berlari:

SELECT a.*
FROM aircraft a
WHERE a.airc_manufact IN (SELECT f.airc_manufact FROM flight f);

Jika f.airc_manufact tidak ada, maka aturan pelingkupan mengatakan untuk mencari di kueri luar. Jadi, yang sebenarnya Anda jalankan adalah:

SELECT a.*
FROM aircraft a
WHERE a.airc_manufact IN (SELECT a.airc_manufact FROM flight f);

Itu sangat tidak berguna sebagai klausa penyaringan.

Pesan Moral:Selalu memenuhi syarat nama kolom dalam kueri, terutama jika kueri merujuk ke lebih dari satu tabel.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghadapi Kesalahan SQL:ORA-01843:bukan bulan yang valid

  2. [A]Oracle.ManagedDataAccess.Client.OracleParameter tidak dapat ditransmisikan ke [B]Oracle.ManagedDataAccess.Client.OracleParameter

  3. Panggil prosedur tersimpan Oracle dari PHP

  4. Bagaimana saya harus menangani parameter nol dalam prosedur tersimpan PL/SQL ketika saya ingin menggunakannya dalam perbandingan?

  5. hubungkan dengan klausa di regex_substr