Однажды я случайно сгенерировал оператор CREATE для приглашения SQL в Oracle 9i, все столбцы которого заключены в двойные кавычки, как показано ниже.
CREATE TABLE emp("emp_id" VARCHAR2(6) primary key,
"emp_name" VARCHAR2(30) not null, "salary" NUMBER);
вместо того, чтобы выдавать его, как указано ниже, не заключая имена столбцов в кавычки, как обычно.
CREATE TABLE emp(emp_id VARCHAR2(6) primary key,
emp_name VARCHAR2(30) not null, salary NUMBER);
Этот простой запрос (впервые упомянутый) работал просто без проблем, и таблица emp была создана успешно, тогда я создал три строки в этой таблице с помощью следующей команды INSERT.
INSERT INTO emp VALUES("E0001", "Henery", 50000);
INSERT INTO emp VALUES("E0002", "Alex", 65000);
INSERT INTO emp VALUES("E0003", "Peter", 70000);
Три строки успешно созданы в таблицу emp. Затем я выполнил инструкцию SELECT, чтобы проверить, были ли они созданы или нет, и обнаружил, что они действительно были созданы.
SELECT * FROM emp;
но когда я выполнил инструкцию SELECT, как показано ниже
SELECT emp_id, emp_name, salary FROM emp;
Я убедился, что хотя я использовал те же имена столбцов, что и на самом деле в таблице emp, Oracle выдал ошибку, указывающую, что «таких столбцов не существует».