在dbGetQuery()中包含一个#标签

时间:2017-02-23 11:04:04

标签: r hana rjdbc

我正在尝试使用RJDBC连接到SAP HANA数据库并查询临时表,该表存储有#-prefix:

test <- dbGetQuery(jdbcConnection,
      "SELECT * FROM #CONTROL_TBL")

# Error in [...]: invalid table name:  Could not find table/view #CONTROL_TBL in schema USER

如果我在HANA中执行SQL语句,它可以正常工作。我也能查询永久表。因此,我假设R不会传递主题标签。然而,插入"SELECT * FROM \\#CONTROL_TBL"之类的转义并没有解决我的问题。

2 个答案:

答案 0 :(得分:1)

无法从不同的会话查询本地或全局临时表的数据,因为它们根据定义是特定于会话的。对于全局临时表,可以查询表的元数据,因为它们是跨会话共享的。

来源:Tutorial for HANA temporary tables

答案 1 :(得分:0)

好的,本地临时表始终只对已定义它们的会话可见,而全局临时表与普通表一样可见,但数据是会话私有的。

所以,如果你创建了本地temp。在不同的会话中,表(名称以#开头),难怪无法找到它。

对于您的示例,问题是:为什么您首先需要临时表? 而不是那样,你可以例如定义视图或表函数以从中选择数据。