В TSQL я мог бы использовать что-то вроде Select [table] from tablename
для выбора столбца с именем "table".
Как это сделать для зарезервированных слов в oracle?
Изменить: я пробовал квадратные скобки, двойные кавычки, одинарные кавычки и обратные кавычки, они не работают...
В качестве дополнительного пояснения у меня есть столбец, который кто-то назвал комментарием. Поскольку это зарезервированное слово oracle, он забрасывает шаткое, пытаясь выбрать с ним, его отказ при анализе запроса. Я попытался выбрать "комментарий" из tablename, но это не сработало. Я провешу дело и вернусь.
В результате быстрого поиска Oracle, похоже, использует двойные кавычки ("
, например "table"
) и, по-видимому, требует правильного случая, где для любого, кого интересует, MySQL по умолчанию использует обратные ссылки ( `), за исключением случаев, когда для использования используются двойные кавычки.
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';
Oracle использует двойные кавычки, но вам, скорее всего, нужно разместить имя объекта в верхнем регистре, например. "ТАБЛИЦА". По умолчанию, если вы создаете объект без двойных кавычек, например
CREATE TABLE table AS ...
Oracle создаст объект как верхний регистр. Однако ссылка не чувствительна к регистру, если вы не используете двойные кавычки!
двойные кавычки работали в oracle, когда у меня было ключевое слово как одно из имен столбца.
например:
select t."size" from table t
вам нужно переименовать столбец в другое имя, потому что TABLE
зарезервировано Oracle.
Вы можете видеть все зарезервированные слова Oracle в представлении оракула V$RESERVED_WORDS
.
ORA-00942
когда пытаюсь select * from V$RESERVED_WORDS
.