Sepertinya Anda menentukan nama kolom di bawah tanda kutip di DDL Anda.
Oracle menganggap pengidentifikasi di bawah tanda kutip sebagai peka huruf besar/kecil, jadi membuat tabel dengan nama kolom sebagai "tubuh" atau "tahun" tidak akan menyelesaikan badan atau tahun dalam kueri Anda, karena ketika Anda menghilangkan tanda kutip, itu mempertimbangkan varian huruf besar.
Jadi ketika Anda memiliki ini:
create table driver_case (registration varchar2(60),
make varchar2(60),
model varchar2(60),
gvw number,
"year" number,
"body" varchar2(60));
lalu coba lakukan
select year, body from driver_case
kemudian Oracle mencoba menemukan kolom "TAHUN", "BODY" (ingat, tanpa pengenal tanpa tanda kutip akan dikonversi ke huruf besar) yang tidak sama dengan "tahun", "tubuh" di tabel Anda.
Solusi Anda?
- Jangan sebutkan nama kolom di bawah tanda kutip di DDL
- Jika Anda mengabaikan poin di atas, maka Anda harus sebutkan nama kolom di bawah tanda kutip di semua pernyataan DML Anda.
Saya mendemonstrasikan poin di atas dalam SQL Fiddle ini