从 R 读取从 SAP HANA 中的过程创建的视图

Read a View created from a procedure in SAP HANA from R

我在 SAP HANA 中有名称为 "HYZ_ProcurementToSales" 的模式,视图 "V_HYZ_P25_Market_Market_Orders" 是从一个程序,我试图在 R 服务器版本 1.0.153 中提取视图。我使用的代码是:

library(RJDBC)
conn_server <- dbConnect(jdbcDriver,
"jdbc:sap:rdkom12.dhcp.pal.sap.corp:30015", "system",
"manager")
res <- dbGetQuery(conn,"select * from 
HYZ_ProcurementToSales.V_HYZ_P25_Market_Market_Orders")

我得到的错误是这样的:

"Unable to retrieve JDBC result set for 
select * from HYZ_ProcurementToSales.V_HYZ_P25_Market_Market_Orders".

我相信用其他东西代替 dbGetQuery 可以解决这个问题。如果我只是这样做就可以正常工作

res <- dbGetQuery(conn,"select * from Tables")

以下在 HANA 1 SPS12 上对我有用,其过程公开了一个名为 V_CURRENTUSERS 的视图:

library(RJDBC)
drv <- JDBC("com.sap.db.jdbc.Driver",
            "C:\Program Files\SAP\hdbclient\ngdbc.jar",
            identifier.quote='"')
conn <- dbConnect(drv, "jdbc:sap://<hanaserver>:3<instance>15/?", "**username**", "*pw*")

jusers <- dbFetch(dbSendQuery(conn = conn, statement = 'select * from v_currentusers;'))

此时,整个结果集绑定到jusers。 完成后您应该再次发布结果集:

dbClearResult(jusers)

最后关闭连接

dbDisconnect(conn)

请注意,带有结果视图的过程已被弃用,不应再 used/developed。相反,使用 table 函数,因为这些函数也可以在信息视图中重复使用并允许动态参数分配。