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

ORACLE 12.2.01 memilih kolom dari tabel yang berbeda dengan nama yang mirip --> pengidentifikasi kolom internal yang digunakan

Menurut Oracle (DocId 2658003.1), ini terjadi ketika tiga kondisi terpenuhi:

  1. ANSI bergabung
  2. UNI / UNI SEMUA
  3. tabel yang sama muncul lebih dari satu kali dalam kueri

Rupanya, "QCSJ_C" digunakan secara internal ketika Oracle mengubah gaya ANSI bergabung.

EDIT:

Ditemukan contoh minimal:

SELECT * FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy
UNION
SELECT * FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy;

QCSJ_C000000000300000 QCSJ_C000000000300001
X                     X

Itu dapat diperbaiki dengan menggunakan sintaks gabungan non-ANSI:

SELECT * FROM dual d1, dual d2 WHERE d1.dummy=d2.dummy
UNION
SELECT * FROM dual d1, dual d2 WHERE d1.dummy=d2.dummy;

DUMMY DUMMY_1
X     X

Atau, sebaiknya dengan menggunakan nama kolom daripada * :

SELECT d1.dummy, d2.dummy FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy
UNION
SELECT d1.dummy, d2.dummy FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy;

DUMMY DUMMY_1
X     X


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kunci Pesimis JPA Tidak Berfungsi

  2. Dapatkan nilai berdasarkan maksimal kolom berbeda yang dikelompokkan berdasarkan kolom lain

  3. Oracle - literal tidak cocok dengan kesalahan format string

  4. Selesaikan Fungsi Matematika PL/SQL

  5. Bagaimana cara mengurai json secara efisien di Oracle 18c?