Создаем обычную вьюшку.
create view TestView as Select Level as N from dual connect by Level < 10
Три следующих запроса работают нормально:
Select * from TestView; Select N from TestView; Select n from TestView; Select "N" from TestView;
Не понравилось нам название колонки – N, меняем вьюшку
create or replace view TestView as Select Level as "Test_Column" from dual connect by Level < 10
Первые три запросы вернут ошибку ORA-00904. Последний четвертый выполнится без проблем.
Select Test_Column from TestView Select test_column from TestView Select "test_column" from TestView Select "Test_Column" from TestView
Поначалу я решил что всё что заключено в двойные кавычки будет case-sensitive и надо обрамлять имя колонки в двойные кавычки и писать имя букву в букву с учётом регистра. Следующий пример это опровергает. Никаких проблем нет.
create or replace view TestView as Select Level as "N" from dual connect by Level < 10 Select * from TestView; Select N from TestView; Select n from TestView; Select "N" from TestView;
Оказалось всё гораздно проще.
Если имя колонки заключенно в двойные кавычки, то при запросах его точно также и надо писать с учётом регистра.
Если в запросе вы обрамляете название поле двойными кавычками, то его надо писать в верхнем регистре, если конечно в определении view вы не использовали двойные кавычки.
Ну где у Оракла логика?!