Sql 获取ROracle的问题
我在使用ROracle检索大量数据时遇到问题(我对Oracle数据库拥有只读权限) 由于所涉及的数据超过4 Gig,我无法使用ROracle提供的dbGetQuery,因为它工作得非常好 相反,我尝试使用dbSendQuery+fetch,但它似乎不适用于Oracle。(它与RmySQL包完美结合) 例如: 对于我的Oracle版本:Sql 获取ROracle的问题,sql,r,plsql,oracle10g,r-dbi,Sql,R,Plsql,Oracle10g,R Dbi,我在使用ROracle检索大量数据时遇到问题(我对Oracle数据库拥有只读权限) 由于所涉及的数据超过4 Gig,我无法使用ROracle提供的dbGetQuery,因为它工作得非常好 相反,我尝试使用dbSendQuery+fetch,但它似乎不适用于Oracle。(它与RmySQL包完美结合) 例如: 对于我的Oracle版本: dbGetQuery(con2, "select * from PRODUCT_COMPONENT_VERSION")
dbGetQuery(con2, "select * from PRODUCT_COMPONENT_VERSION")
PRODUCT VERSION STATUS
NLSRTL 10.2.0.3.0 Production
Oracle Database 10g Enterprise Edition 10.2.0.3.0 Prod
PL/SQL 10.2.0.3.0 Production
TNS for 32-bit Windows: 10.2.0.3.0 Production
如果我尝试:
query <- "SELECT * FROM BFMXML_SUIVI"
rs <- dbSendQuery(con2, query, bulk_read = 10000L, prefetch = T)
test <- fetch(rs, n = 10)
dim(test)
[1] 一,
但我希望得到10排
然后再次获取:
test <- fetch(rs, n = 10)
dim(test)
[1] 一,
因此,没有获取下一行,并且查看“test”的结果,我可以看到它只填充了零(这是不正确的+第一次获取调用不是这种情况)
您是否看到了任何替代/解决方案?快速解决方案,我应该补充一点,我手边没有Oracle后端可供测试:
res,如果可以的话,我会使用dbGetQuery(它与Oracle配合得很好),但问题是它会在R中加载整个SQL表。因此,如果R的内存大小有限(这是我的情况!),就会出现内存分配错误。这就是为什么我想使用dbSendQuery一点一点地加载数据,并在R中对其进行汇总
test <- fetch(rs, n = 10)
dim(test)
dbGetRowCount(rs)