这是我试图抓住的表格。从我的HANA数据库,但我一直收到以下错误。我知道桌子存在,因为我从Qlikview中取出了它。
从Qlikview我使用以下语法拉入表格
"_MY_SCHEMA_"."My.Table.Name/Table_ONE"
当我尝试在R中使用相同的东西时,我使用以下内容来获取相同的表
mydate <- sqlFetch(myconn, "_MY_SCHEMA.My.Table.Name/Table_ONE")
这是我得到的错误
Error in odbcTableExists(channel, sqtable)
: table not found on channel
答案 0 :(得分:0)
此问题是由STRINGS封装在引号中的方式引起的。在这种情况下,这发生在两个层面:
您对两个步骤都使用了双引号封装。在这两个步骤的每一步中,字符串都是从您使用的参数中提取的,其中包括删除最外面的封装标记,这些标记在这里是双引号。 因此,在第1步之后,双引号就会消失,而HANA会收到没有它们的字符串 这是可以的,只要您实际上不需要标识符的双引号,但在您的示例中实际上是这样做的。 (具有特殊字符的区分大小写的标识符,如/或。需要双引号)。
对此的解决方案相当简单:R允许单引号(&#39;)和双引号(&#34;)用于字符串封装。
只需在R中使用单引号来移交字符串:
mydate <- sqlFetch(myconn, '_MY_SCHEMA."My.Table.Name/Table_ONE"')
注意:你仍然需要封装&#34; My.Table.Name/Table_ONE"使用双引号,以便HANA正确处理此标识符。
对于连接R到HANA,还有几个博客: