【发布时间】:2020-02-25 17:34:16
【问题描述】:
当我在 R 中从 HANA 运行 sql 查询时,提取所有列,数据正确返回。
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。
这是怎么回事?
【问题讨论】:
-
请检查 SAP Hana 数据库的规则以引用列名。这个
'SalesOffice'是一个literal 而不是列引用。如果需要,请尝试删除引号或使用(转义)双引号来引用混合大小写的列名称。 -
正如 Marmite Bomber 所说,当您的查询中有
'SalesOffice'时,它是字符串文字,而不是列引用。因此查询的结果是预期的。您需要使用列引用(例如SalesOffice或"SalesOffice")。 -
这与您的last question 相关,我commented。双引号和单引号在 SQL 中的含义不同,而在 R 中是同义词。不要混淆两者。
-
Marmite Bomber 是正确的,评论应该是答案!