Не удается получить столбец в SAP Hana Studio

Я импортирую файл .csv с помощью студии HANA, вот как выглядит моя таблица:

Предварительный просмотр импортированной таблицы

Вот как выглядит мой запрос:

select outage_start from "PIHPJ"."ji_major_storm"

и это сообщение об ошибке:

SAP DBTech JDBC: [260]: invalid column name: OUTAGE_START: line 1 col 8 (at pos 7)

Если я перейду на верхний регистр:

select OUTAGE_START from "PIHPJ"."ji_major_storm"

Я все еще получаю это сообщение об ошибке:

SAP DBTech JDBC: [260]: invalid column name: OUTAGE_START: line 1 col 8 (at pos 7)

Что происходит??? Что я делаю неправильно?


person user69355    schedule 27.11.2019    source источник


Ответы (1)


Это обычная проблема, и на нее есть множество вопросов и ответов.

Вкратце: если объект был назван в двойных кавычках (" "), то имя не конвертируется в верхний регистр.

Для обращения к таким объектам (таблицы, столбцы, представления и т. Д.) Необходимо снова использовать двойные кавычки.

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

Итак, это:

select "outage_start" from "PIHPJ"."ji_major_storm"

может сработать в вашем случае.

person Lars Br.    schedule 27.11.2019
comment
Спасибо @Lars Br., Переименование столбца RENAME COLUMN PIHPJ.ji_major_storm.outage_start TO OUTAGE_START также, кажется, помогает. Знаем ли мы, почему SAP это делает? - person user69355; 27.11.2019
comment
Конечно, мы знаем, почему SAP делает это: это часть стандарта SQL и десятилетиями реализована в других СУБД, таких как Oracle. Основная причина - избегать идентификаторов, которые совпадают с зарезервированными словами (например, следует избегать таблицы с именем sELect). - person Lars Br.; 28.11.2019
comment
И, конечно же, это было задокументировано для SAP HANA ... help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.04/ - person Lars Br.; 28.11.2019