sql >> Database >  >> RDS >> Oracle

ORA-00904 bij het invoegen/opvragen van gegevens uit tabellen

Het lijkt erop dat u de kolomnamen onder aanhalingstekens in uw DDL hebt opgegeven.

Oracle beschouwt identifiers onder aanhalingstekens als hoofdlettergevoelig, dus het maken van een tabel met een kolomnaam als "body" of "year" zal body of year niet oplossen in uw zoekopdracht, omdat wanneer u de aanhalingstekens weglaat, het de hoofdlettervariant in overweging neemt.

Dus als je dit hebt:

 create table driver_case (registration varchar2(60), 
                      make varchar2(60),
                      model varchar2(60),
                      gvw number,
                      "year" number, 
                      "body" varchar2(60));

en probeer dan

select year, body from driver_case

dan probeert Oracle kolom "YEAR", "BODY" te vinden (onthoud, zonder een identifier zonder aanhalingstekens wordt geconverteerd naar hoofdletters) wat niet hetzelfde is als "year", "body" in uw tabel.

Uw oplossingen?

  • Vermeld geen kolomnamen onder aanhalingstekens in de DDL
  • Als u het bovenstaande punt negeert, moet u moeten vermeld de kolomnamen onder aanhalingstekens in al uw DML-instructies.

Ik demonstreer het bovenstaande punt in deze SQL Fiddle



  1. unieke id in meer dan één tabel [MySQL]

  2. BCrypt Verifieer opgeslagen wachtwoordhash

  3. Kan Amazon RDS niet openen met Eclipse

  4. Hoe het totale aantal geretourneerde rijen opnemen in de resultatenset van de opdracht SELECT T-SQL?