sql >> Base de Datos >  >> RDS >> Oracle

ORA-00904 al insertar/consultar datos de tablas

Parece que especificó los nombres de las columnas entre comillas en su DDL.

Oracle considera que los identificadores entre comillas distinguen entre mayúsculas y minúsculas, por lo que crear una tabla con un nombre de columna como "cuerpo" o "año" no resolverá el cuerpo o el año en su consulta, porque cuando omite las comillas, considera la variante en mayúsculas.

Así que cuando tienes esto:

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

y luego intenta hacer

select year, body from driver_case

luego Oracle intenta encontrar la columna "AÑO", "CUERPO" (recuerde, sin un identificador sin comillas se convierte a mayúsculas) que no es lo mismo que "año", "cuerpo" en su tabla.

¿Tus soluciones?

  • No mencione los nombres de las columnas entre comillas en el DDL
  • Si ignora el punto anterior, entonces debe mencione los nombres de las columnas entre comillas en todas sus declaraciones DML.

Demuestro el punto anterior en este SQL Fiddle