首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rodbc提高将数据帧插入到R中oracle表的速度

使用rodbc提高将数据帧插入到R中oracle表的速度
EN

Stack Overflow用户
提问于 2013-04-27 01:31:52
回答 1查看 688关注 0票数 0

我正在使用RODBC向oracle表中插入数据帧。我已经在表上设置了主键,如果有重复的数据帧进入,oracle将拒绝它。为了确保我没有丢失任何数据,首先我尝试插入整个数据框,如果有任何错误,我将尝试一次插入每条记录。但是,当我尝试一次插入每条记录时,需要很长时间才能完成。我很好奇,有没有人做过这样的工作,方法是什么?我的代码如下:

代码语言:javascript
复制
tryCatch({

        ch=odbcConnect("<id>",pwd = "<password>")
        sqlSave(ch,dat, tablename="<tablename>", rownames=FALSE, append=TRUE)
        },error = function(e) 
        {
          print("unable to insert the data frame, will try by each row")   
                                    ch=odbcConnect("<id>",pwd = "<password>")

             for (k in 1:nrow(dat)) 
                {
                    j<-dat[k,]
                    tryCatch({
                            sqlSave(ch,j, tablename="<tablename>", rownames=FALSE, append=TRUE)
                    },error = function(e) {
                        print("unable to insert, duplicate values")
                    })
                }
                odbcClose(ch)
        })
odbcClose(ch)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-28 04:48:34

将odbcConnect移出每条记录的循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16242097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档