Положив двойные кавычки вокруг идентификатора в Oracle причин Oracle обрабатывать идентификатор как чувствительный к регистру, а не использовать по умолчанию нечувствительность к регистру. Если вы создаете таблицу (или столбец) с двойными кавычками вокруг имени, вы всегда должны ссылаться на идентификатор с двойными кавычками и путем правильного указания случая (за исключением всех идентификаторов верхнего регистра, где двойные кавычки бессмысленны).
Под обложками Oracle всегда выполняет идентификатор, чувствительный к регистру. Но он всегда отличает идентификаторы, которые не дублируются в верхнем регистре, перед выполнением сопоставления. Если вы помещаете двойные кавычки вокруг идентификатора, Oracle пропускает кастинг в верхний регистр.
Так что, если вы делаете что-то вроде
CREATE TABLE my_table(
col1 number,
col2 number
)
вы можете
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
но что-то вроде
SELECT * FROM "my_table"
подведет.
С другой стороны, если вы делаете что-то вроде
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
вы не можете сделать
SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
, но это
SELECT * FROM "my_other_table"
будет работать
Этот ответ не учитывает того факта, что он также позволяет идентификаторам содержать символы, которые в противном случае были бы незаконными, например пробельный символ. Также, вероятно, лучше всего использовать только буквы верхнего регистра, цифры и подчеркивание. Это облегчит жизнь каждому. – jpmc26