В TSQL я мог бы использовать что-то вроде Select [table] from tablename
выбора столбца с именем «таблица».
Как мне сделать это для зарезервированных слов в Oracle?
Изменить: я пробовал квадратные скобки, двойные кавычки, одинарные кавычки и обратные кавычки, они не работают ...
В качестве дополнительного пояснения у меня есть столбец, который кто-то назвал комментарием. Поскольку это зарезервированное слово, оракул отбрасывает шаткую попытку выбора с его помощью, что не удается при синтаксическом анализе запроса. Я пробовал выбрать "комментарий" из имени таблицы, но это не сработало. Я проверю кейс и вернусь.
oracle
reserved-words
кладовая для продуктов
источник
источник
Ответы:
Быстрый поиск показывает, что Oracle использует двойные кавычки (
"
например"table"
) и, по-видимому, требует правильного регистра - в то время как для всех, кого это интересует, MySQL по умолчанию использует обратные кавычки (`), за исключением случаев, когда для совместимости заданы двойные кавычки.источник
Oracle обычно требует двойных кавычек для разделения имен идентификаторов в операторах SQL, например
Однако он любезно позволяет опустить двойные кавычки, и в этом случае он незаметно преобразует идентификатор в верхний регистр:
внутренне преобразуется во что-то вроде:
источник
двойные кавычки работали в oracle, когда у меня было ключевое слово в качестве имени столбца.
например:
источник
Oracle действительно использует двойные кавычки, но вам, скорее всего, потребуется поместить имя объекта в верхний регистр, например "ТАБЛИЦА". По умолчанию, если вы создаете объект без двойных кавычек, например
Oracle создаст объект в верхнем регистре . Однако при ссылках регистр не учитывается, если вы не используете двойные кавычки!
источник
вам необходимо переименовать столбец в другое имя, поскольку
TABLE
оно зарезервировано Oracle.Вы можете увидеть все зарезервированные слова Oracle в представлении оракула
V$RESERVED_WORDS
.источник
ORA-00942
когда пытаюсьselect * from V$RESERVED_WORDS
.