Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-00904 ao inserir/consultar dados de tabelas


Parece que você especificou os nomes das colunas entre aspas em seu DDL.

A Oracle considera os identificadores entre aspas diferenciando maiúsculas de minúsculas, portanto, criar uma tabela com um nome de coluna como "corpo" ou "ano" não resolverá corpo ou ano em sua consulta, pois quando você omite as aspas, considera a variante em maiúsculas.

Então, quando você tem isso:
 create table driver_case (registration varchar2(60), 
                      make varchar2(60),
                      model varchar2(60),
                      gvw number,
                      "year" number, 
                      "body" varchar2(60));

e depois tente fazer
select year, body from driver_case

então o Oracle tenta encontrar a coluna "YEAR", "BODY" (lembre-se, sem um identificador sem aspas é convertido em maiúsculas) que não é o mesmo que "year", "body" em sua tabela.

Suas soluções?
  • Não mencione nomes de colunas entre aspas no DDL
  • Se você desconsiderar o ponto acima, deve mencione os nomes das colunas entre aspas em todas as suas instruções DML.

Demonstro o ponto acima neste SQL Fiddle