Подтвердить что ты не робот

Имя столбца таблицы Oracle с пространством

Можно ли создать таблицу с именем столбца, содержащим пробел? Если да, то как я могу его создать и использовать?

4b9b3361

Ответ 1

Возможно, но это не рекомендуется. Вы должны заключить имя столбца в двойные кавычки.

create table my_table ("MY COLUMN" number);

Но обратите внимание на предупреждение в документации:

Примечание: Oracle не рекомендует использовать цитированные идентификаторы для базы данных имена объектов. Эти цитируемые идентификаторы принимаются SQL * Plus, но они могут быть недействительными при использовании других инструментов, которые управляют базой данных объекты.

Имя будет чувствительным к регистру, и вы должны будете заключать это имя в двойные кавычки каждый раз, когда вы ссылаетесь на него:

select "MY COLUMN" from my_table;

Итак... не надо, был бы моим советом...

Ответ 2

Да, это возможно. Вы просто должны указать название столбца. Например:

CREATE TABLE Fubar ("Foo Bar" INT);
INSERT INTO Fubar VALUES (1337);
SELECT "Foo Bar" FROM SpaceMonster

Даже если это возможно, это не делает его хорошей идеей. Вероятно, вы избавитесь от боли, если просто замените все пробелы символами подчеркивания.

Ответ 3

Вы можете (см. документ Oracle), если вы укажете их соответствующим образом. Однако я подозреваю, что это не очень хорошая идея, так как вам придется процитировать все. Как правило, стандарты/соглашения об именах db (например здесь или здесь) пользуйтесь символами подчеркивания (которые не требуют цитирования) над пробелами.

Ответ 4

это возможно, назвав столбец между двумя " пример: "My columN", имя столбца становится чувствительным к регистру, что означает.

SELECT "my column" from table; --NOT OK
SELECT "My columN" from table; --OK

Ответ 5

Это правило столбцов, определенное для oracle

Столбцы (для таблиц)

  • Все столбцы в форме {alias} _ {colname}. Например, prs_id, prs_name, prs_adr_id, adr_street_name. Это гарантирует, что столбец имена уникальны в схеме, за исключением денормализованных столбцов из другая таблица, заполняемая с помощью триггеров или приложений логика.
    • Все столбцы находятся в единственном числе. Если вы считаете, что вам нужно имя колонки во множественном числе, подумайте дважды, правильно ли это? Обычно это означает, что вы включаете несколько значений в один столбец и что следует избегать.
    • Все таблицы имеют суррогатный первичный ключевой столбец в форме {alias} _id, который является первым столбцом в таблице. Например, prs_id, mat_id, adr_id.

у вас всегда может быть псевдоним для имени столбца bu, используя ""

Ответ 6

Вы Google для этого? Я сделал - 6-я ссылка была this, в которой я нахожу следующее:

create table employee (
   "First Name" varchar2(20),
   "Last Name" varchar2(20),
   Address varchar2(60),
   Phone varchar2(15),
   Salary number,
   EmpID number,
   DeptID number
); 

... который отлично работает, когда я пробовал его в 10g.