RODBC无法在oracle表中一次插入一行记录

RODBC无法在oracle表中一次插入一行记录,r,oracle,R,Oracle,我需要一次向oracle表中插入一行。如果重复,由于PK设置,将不会插入。我需要拒绝在db表中插入重复的行 我使用RODBC执行此操作,即使在7:00PM之后表上没有重复的值,也无法在7:00PM之后将记录插入表中。Dat数据帧的值在晚上7点之前和之后。但是目标oracle表在7PM之后没有任何值。有什么想法吗?我如何实现这一点以确保每次将值插入表中一行 tryCatch({ ch=odbcConnect("<id>",pwd = "<password>") s

我需要一次向oracle表中插入一行。如果重复,由于PK设置,将不会插入。我需要拒绝在db表中插入重复的行

我使用RODBC执行此操作,即使在7:00PM之后表上没有重复的值,也无法在7:00PM之后将记录插入表中。Dat数据帧的值在晚上7点之前和之后。但是目标oracle表在7PM之后没有任何值。有什么想法吗?我如何实现这一点以确保每次将值插入表中一行

tryCatch({

  ch=odbcConnect("<id>",pwd = "<password>")
  sqlSave(ch,dat, tablename="<tablename>", rownames=FALSE, append=TRUE, fast=FALSE)
  },error = function(e) {
    print(e)
  })
  odbcClose(ch)
tryCatch({
ch=odbcConnect(“,pwd=”“)
sqlSave(ch,dat,tablename=”“,rownames=FALSE,append=TRUE,fast=FALSE)
},错误=函数(e){
打印(e)
})
odbcClose(ch)
我得到这个错误:

<simpleError in sqlSave(ch, dat, tablename = "<tablename>", rownames = FALSE,     append = TRUE, fast = FALSE): un
able to append to table '<tablename'>

我考虑过这个解决方案,但如果速度更快,我愿意接受任何其他解决方案

这就是我一次处理一条记录并将其插入数据库的方法。如果记录重复,则该重复记录将被拒绝,并且R将在下一条记录上继续:

for (k in 1:nrow(dat)) 
  {

    j<-dat[k,]

         tryCatch({

                  ch=odbcConnect("<id>",pwd = "<password>")
                  sqlSave(ch,j, tablename="<TableName>", rownames=FALSE, append=TRUE)
               },error = function(e) {
          print(e)
             })
}

 odbcClose(ch)
for(k/1:nrow(dat))
{
J