Sql 获取ROracle的问题

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")

我在使用ROracle检索大量数据时遇到问题(我对Oracle数据库拥有只读权限) 由于所涉及的数据超过4 Gig,我无法使用ROracle提供的dbGetQuery,因为它工作得非常好

相反,我尝试使用dbSendQuery+fetch,但它似乎不适用于Oracle。(它与RmySQL包完美结合)

例如:

对于我的Oracle版本:

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)