1

每天我从外部站点提取数据并使用 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 命令失败,我可以尝试一次插入一行,但这需要永远完成。脚本永远赶不上。

我很想知道是否有 sqlSave 选项或任何可以忽略重复记录并使用 sqlSave 插入其他内容的选项。非常感谢任何见解。

4

0 回答 0