Снежинка: ВЫБЕРИТЕ КОЛОНКУ с двойными кавычками

У меня есть клиент, который для экземпляра Snowflake требует, чтобы имя столбца было заключено в двойные кавычки. Пример: ВЫБЕРИТЕ «CategoryName» из «lk_category»; Кто-нибудь знает, как отключить эту функцию?


person Moa Passador    schedule 16.10.2019    source источник
comment
В Oracle кавычки требуются, когда имена полей соответствуют ключевым словам.   -  person alexherm    schedule 16.10.2019
comment
Поскольку ваш клиент создал таблицы со столбцами внутри двойных кавычек, теперь они чувствительны к регистру, и для ссылки на них необходимо использовать двойные кавычки. Есть Quoted_Identifiers_Ignore_Case переменная, которую можно переключить на TRUE для сеанса, но она не влияет на уже существующие объекты.   -  person JNevill    schedule 16.10.2019


Ответы (2)


Это слишком долго для комментария.

документация Snowflake немного объясняет идентификаторы.

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

"ABC"
"abc"
"Abc"

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

ABC
abc
Abc

В качестве бонуса они также эквивалентны:

"ABC"

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

Если база данных уже была создана с указанными идентификаторами. . . ну, вы можете изменить это.

Снежинка определила это как проблему. Вы можете отключить цитируемое поведение, установив Параметр QUOTED_IDENTIFIERS_IGNORE_CASE.

person Gordon Linoff    schedule 16.10.2019
comment
Спасибо! Это имеет смысл - person Moa Passador; 16.10.2019

На ваш вопрос:

SELECT """CategoryName""" FROM lk_category

… Это ответ. У меня была аналогичная проблема с двойными сводными таблицами.

Пожалуйста, проверьте это, используя:

Describe View/Table Table/View_Name

Мы получим список имен столбцов, если присутствует имя поля с двойной кавычкой Ex: Name.

Затем, чтобы выбрать его, мы должны использовать дополнительные кавычки в качестве escape-символов.

person Rajashekar    schedule 15.02.2021