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

Как избежать зарезервированного слова в Oracle?

В TSQL я мог бы использовать что-то вроде Select [table] from tablename для выбора столбца с именем "table".

Как это сделать для зарезервированных слов в oracle?

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

В качестве дополнительного пояснения у меня есть столбец, который кто-то назвал комментарием. Поскольку это зарезервированное слово oracle, он забрасывает шаткое, пытаясь выбрать с ним, его отказ при анализе запроса. Я попытался выбрать "комментарий" из tablename, но это не сработало. Я провешу дело и вернусь.

4b9b3361

Ответ 1

В результате быстрого поиска Oracle, похоже, использует двойные кавычки (", например "table") и, по-видимому, требует правильного случая, где для любого, кого интересует, MySQL по умолчанию использует обратные ссылки ( `), за исключением случаев, когда для использования используются двойные кавычки.

Ответ 2

Oracle обычно требует двойных кавычек, чтобы разграничить имя идентификаторов в операторах SQL, например.

SELECT "MyColumn" AS "MyColAlias"
FROM "MyTable" AS "Alias"
WHERE "ThisCol" = 'That Value';

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

SELECT MyColumn AS MyColAlias
FROM MyTable AS Alias
WHERE ThisCol = 'That Value';

внутренне преобразуется в нечто вроде:

SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS"
FROM "THEUSER" . "MYTABLE" AS "ALIAS"
WHERE "ALIAS" . "THISCOL" = 'That Value';

Ответ 3

Oracle использует двойные кавычки, но вам, скорее всего, нужно разместить имя объекта в верхнем регистре, например. "ТАБЛИЦА". По умолчанию, если вы создаете объект без двойных кавычек, например

CREATE TABLE table AS ...

Oracle создаст объект как верхний регистр. Однако ссылка не чувствительна к регистру, если вы не используете двойные кавычки!

Ответ 4

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

например:

select t."size" from table t 

Ответ 5

вам нужно переименовать столбец в другое имя, потому что TABLE зарезервировано Oracle.

Вы можете видеть все зарезервированные слова Oracle в представлении оракула V$RESERVED_WORDS.