Sembra che tu abbia specificato i nomi delle colonne tra virgolette nel tuo DDL.
Oracle considera gli identificatori tra virgolette come una distinzione tra maiuscole e minuscole, quindi la creazione di una tabella con un nome di colonna come "corpo" o "anno" non risolverà il corpo o l'anno nella query, perché quando ometti le virgolette, considera la variante maiuscola.
Quindi quando hai questo:
create table driver_case (registration varchar2(60),
make varchar2(60),
model varchar2(60),
gvw number,
"year" number,
"body" varchar2(60));
e poi prova a fare
select year, body from driver_case
quindi Oracle prova a trovare la colonna "YEAR", "BODY" (ricorda, senza un identificatore senza virgolette viene convertito in maiuscolo) che non è la stessa di "year", "body" nella tua tabella.
Le vostre soluzioni?
- Non menzionare i nomi delle colonne tra virgolette nel DDL
- Se ignori il punto precedente, devi menziona i nomi delle colonne tra virgolette in tutte le tue istruzioni DML.
Dimostro il punto precedente in questo SQL Fiddle