Im SQL-Standard müssen Bezeichner in doppelte Anführungszeichen eingeschlossen werden ("
). Und die Oracle-Datenbank entspricht dort dem Standard.
Einfache Anführungszeichen ('
) sind für Zeichenkonstanten z.B. wie im semester='Spring'
, können sie nicht für Bezeichner wie Spaltennamen, Tabellennamen oder einen Spaltenalias verwendet werden.
Sie müssen also verwenden:
classes.limit-classes.class_size as "seats_available"
Sie brauchen die doppelten Anführungszeichen aber eigentlich nicht, da Ihr Bezeichner keine ungültigen Zeichen enthält, also
classes.limit-classes.class_size as seats_available
wird genauso gut funktionieren
Unabhängig, aber:Zahlen sollten nicht sein in einfache Anführungszeichen gesetzt werden 2017
ist eine Zahlenkonstante, '2017'
ist eine Stringkonstante. Sie sollten also where year = 2017
verwenden stattdessen