从 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 函数,因为这些函数也可以在信息视图中重复使用并允许动态参数分配。
我在 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 函数,因为这些函数也可以在信息视图中重复使用并允许动态参数分配。