Могу ли я использовать все идентификаторы UPPER_CASE с кавычками и без них для разных объектов в одном и том же пространстве имен? - PullRequest
0 голосов
/ 18 мая 2018

Из Документ Oracle Точка 9-ой точки:

Nonquoted identifiers are not case sensitive.
Oracle interprets them as uppercase.
Quoted identifiers are case sensitive.

- part 1 -
By enclosing names in double quotation marks,
you can give the following names to different
objects in the same namespace:

employees
"employees"
"Employees"
"EMPLOYEES"

- part 2 -
Note that Oracle interprets the following names the same,
so they cannot be used for different objects in the same namespace:

employees
EMPLOYEES
"EMPLOYEES"

Если я могу дать и employees, и "EMPLOYEES" различным объектам в одном и том же пространстве имен (из части 1),тогда почему часть 2 говорит, что я не могу использовать employees и "EMPLOYEES" для разных объектов в одном и том же пространстве имен?

Разве это не противоречие?Или я неправильно понимаю?

Спасибо заранее!

1 Ответ

0 голосов
/ 18 мая 2018

Если вы используете имя employees без кавычек, то Oracle будет рассматривать его как верхний регистр.Фактически, employees, без кавычек, с любой комбинацией букв верхнего / нижнего букв будет выглядеть как EMPLOYEES.Поэтому, если вы также добавите "EMPLOYEES", вы просто добавите тот же идентификатор.

Для более наглядного объяснения рассмотрите следующую карту:

input       | identifier
employees   | EMPLOYEES
EMPLOYEES   | EMPLOYEES
"EMPLOYEES" | EMPLOYEES
eMploYEeS   | EMPLOYEES
"employees" | employees

Я бы рекомендовал не использоватьимена для ваших таблиц, столбцов и т. д., которые требуют экранирования в двойных кавычках.Помимо проблем с чувствительностью к регистру, следует также избегать использования зарезервированных ключевых слов SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...