如何将整个数据框插入到具有数据框中重复记录的oracle表中

时间:2013-05-22 20:47:07

标签: r rodbc

每天我从外部网站获取数据并使用RODBC将数据上传到oracle表。这似乎是直截了当的,但是我从外部站点提取的数据可能是重复的(这意味着数据中可能已存在于oracle表中的某些行)。

我目前正在这样做以加载数据:

insert<-function(x){
tryCatch({
    x<-x[complete.cases(x),]
    x<-unique(x)
    x[, 3:5] <- sapply(x[, 3:5], as.character)
    x[, 3:5] <- sapply(x[, 3:5], as.numeric)
    ch=odbcConnect("<id>",pwd = "<passwd>")
    sqlSave(ch,x, tablename="<tablename>", rownames=FALSE, append=TRUE)
    print("insert of dat is successfull!!!!")
      },error = function(e) {
      print("insert failed!!!!")
      print(odbcGetErrMsg(ch))
    })
  odbcClose(ch) 
}  

我测试了这个,它表明如果我的数据框中有一个重复的条目要插入到oracle表中,整个sqlSave就会失败。

如果整个sqlSave命令失败,我可以尝试一次插入一行,但这需要forewever完成。脚本永远不会赶上。

我很想知道是否有sqlSave选项或任何东西只是忽略重复记录并插入其他内容与sqlSave。任何见解都非常感激。

0 个答案:

没有答案