Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-00904 при вмъкване/запитване на данни от таблици

Изглежда, че сте посочили имената на колоните в кавички във вашия DDL.

Oracle счита, че идентификаторите под кавички са чувствителни към малки и големи букви, така че създаването на таблица с име на колона като "тяло" или "година" няма да разреши тялото или годината във вашата заявка, защото когато пропуснете кавичките, той разглежда варианта с главни букви.

Така че, когато имате това:

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

и след това опитайте да направите

select year, body from driver_case

тогава Oracle се опитва да намери колона "YEAR", "BODY" (не забравяйте, че без идентификатор без кавички се преобразува в главни букви), което не е същото като "year", "body" във вашата таблица.

Вашите решения?

  • Не споменавайте имена на колони в кавички в DDL
  • Ако пренебрегнете горната точка, тогава трябва споменете имената на колоните под кавички във всички ваши DML изрази.

Демонстрирам горната точка в този SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Лявото външно съединение на Oracle XMLTABLE не връща резултати, когато XPath не съществува

  2. Мутираща таблица на Oracle SQL тригер

  3. Бързо опресняване на материализиран изглед с клауза HAVING?

  4. Добавете ден към Timestamp

  5. Как да се справя с кавички в SQL