Какое значение # в SQL? - PullRequest
8 голосов
/ 05 мая 2011

У меня есть следующий код для создания типа объекта в Oracle (PL ??)

CREATE OR REPLACE TYPE STAFF_T as OBJECT(Staff_ID# NUMBER, Person PERSON_T); \

Я хотел бы знать, каково значение #, добавляемого к переменной Staff_ID в объявлении?

Ответы [ 3 ]

10 голосов
/ 05 мая 2011

Нет особого значения.

Oracle позволяет использовать $, _ и # в идентификаторах, как и любые другие буквенно-цифровые символы, но идентификатор должен начинаться с буквенного символа (буквы).

3 голосов
/ 05 мая 2011

Это часть имени столбца Staff_ID#. Знак решетки является допустимой частью идентификатора (имя таблицы / столбца) в PL / SQL. Смотри здесь

2 голосов
/ 06 мая 2011

Кто бы ни написал код, вероятно, не имел в виду ничего особенного #.

Но, очевидно, что-то значит для Oracle, хотя я не знаю, что.Из справочника по языку SQL :

Oracle настоятельно не рекомендует использовать $ и # в идентификаторах без кавычек.

Вот некоторые предположения о том, чтопредупреждение о:

  • это связано с действительно старой ошибкой (предупреждение восходит по крайней мере к Oracle 7)
  • Oracle планирует что-то с этим сделать в будущей версии
  • этот символ недоступен на всех клавиатурах, наборах символов или платформах, которые поддерживает Oracle

В словаре данных часто используется знак числа, и, насколько я могу судить, он работает.просто отлично для пользовательских объектов.Но, чтобы быть в безопасности, вы можете удалить его.

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