sql >> Databasteknik >  >> RDS >> Oracle

ORA-00904 vid infogning/sökning av data från tabeller

Det verkar som om du angav kolumnnamnen under citattecken i din DDL.

Oracle betraktar identifierare under citattecken som skiftlägeskänsliga, så att skapa en tabell med ett kolumnnamn som "body" eller "year" kommer inte att lösa brödtext eller år i din fråga, eftersom när du utelämnar citattecken tar det hänsyn till versalvarianten.

Så när du har det här:

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

och försök sedan göra

select year, body from driver_case

sedan försöker Oracle hitta kolumnen "YEAR", "BODY" (kom ihåg att utan en identifierare utan citattecken konverteras till versaler) som inte är samma som "year", "body" i din tabell.

Dina lösningar?

  • Nämn inte kolumnnamn under citattecken i DDL
  • Om du bortser från punkten ovan måste du nämn kolumnnamnen under citattecken i alla dina DML-satser.

Jag visar punkten ovan i denna SQL-fiol



  1. ta bort icke-numeriska tecken i en kolumn (tecken varierar), postgresql (9.3.5)

  2. MySQL:Hur man uppnår transaktionslåsning på radnivå istället för tabelllåsning

  3. Står inför problem när du konfigurerar MySql med apache-luftflöde i Hadoop

  4. Inställning av PDO::ATTR_EMULATE_PREPARES till false fungerar inte