R HANA SQL-запрос, выбирающий определенные имена столбцов, возвращает имена столбцов в качестве значений данных - PullRequest
0 голосов
/ 30 октября 2019

Когда я запускаю SQL-запрос из HANA в R, извлекая все столбцы, данные возвращаются правильно.

sql <- "SELECT TOP 10 *
        FROM \"ccf-edw.self-service.DOIP::R_CA_B_DemandPlan\"( 
            'PLACEHOLDER' = ('$$IP_ExtractionWeekFrom$$', '201943'), 
            'PLACEHOLDER' = ('$$IP_ExtractionWeekTo$$', '201943')) "

SpringVisitAll <- dbGetQuery(jdbcConnection, sql)

Это дает мне столбцы с фактическими данными.

Однако, если я попытаюсь вызвать только несколько столбцов, данные будут заполнены только именами столбцов

sql <- "SELECT TOP 10 'SalesOffice', 'CalendarMonth'
        FROM \"ccf-edw.self-service.DOIP::R_CA_B_DemandPlan\"( 
            'PLACEHOLDER' = ('$$IP_ExtractionWeekFrom$$', '201943'), 
            'PLACEHOLDER' = ('$$IP_ExtractionWeekTo$$', '201943')) "

SpringVisitAll <- dbGetQuery(jdbcConnection, sql)

Дает два столбца, где содержимое каждого из них полностью читает SalesOffice и CalendarMonthвниз.

Что здесь происходит?

1 Ответ

0 голосов
/ 01 ноября 2019

На основе Соглашения об именах для SAP HANA

Имена не чувствительны к регистру. Например, CUSTOMER и Customer - это одно и то же, но имена объектов преобразуются в верхний регистр, когда они хранятся в базе данных SAP HANA. Однако если имя заключено в кавычки, оно чувствительно к регистру.

В зависимости от того, как вы определили столбец в операторе CREATE TABLE (с кавычками или без них), у вас есть два варианта ссылки на них

Имя столбца без кавычек -Без учета регистра

Просто введите имя столбца без разделителей:

 sql <- "SELECT TOP 10  SalesOffice ,  CalendarMonth  ...

Имя столбца в двойных кавычках - С учетом регистра

Вы должны заключитьимя столбца в двойных кавычках. Кроме того, в R строке с двойными кавычками вы должны экранировать двойных кавычек, используя \"

 sql <- "SELECT TOP 10  \"SalesOffice\" ,  \"CalendarMonth\"  ...
...