Давайте рассмотрим простую таблицу: products
в Oracle (я пытался использовать Oracle 9i). Я создаю эту таблицу со следующим оператором CREATE.
CREATE TABLE products
("prod_id" varchar2(7) primary key, "product_name" varchar2(30) NOT NULL);
Следует особо отметить, что я включаю имена столбцов в двойные кавычки ""
, как это обычно не делается. Это, очевидно, будет работать, и таблица products
будет создана с этими двумя столбцами с указанными КОНТРОЛИНАМИ.
Теперь, вставьте несколько строк в эту таблицу, используя следующую команду INSERT INTO.
INSERT INTO products VALUES('P0001', 'Nokia-N97');
INSERT INTO products VALUES('P0002', 'Nokia-1208');
INSERT INTO products VALUES('P0003', 'Nokia-1115');
Вставьте три строки в таблицу products
.
Чтобы убедиться, что эти строки действительно вставлены или нет, мы можем выпустить инструкцию SELECT следующим образом.
SELECT * FROM products;
Будет работать нормально и отображать три строки, которые мы вставили.
Теперь, реальный вопрос здесь. Когда мы выдаем следующий оператор SELECT,
SELECT prod_id, product_name FROM products;
не работает, хотя мы не ошибались в этом SQL. Oracle вместо этого сообщит, что таких столбцов не существует. Почему это происходит? Думаю, для этого должна быть очень конкретная причина.
Я уверен, что включение имен столбцов без необходимости в двойных кавычках, как я только что сделал, может не быть лучшей практикой, но мне просто задал вопрос.