插入错误:从 R 到 Access DB

Posted

技术标签:

【中文标题】插入错误:从 R 到 Access DB【英文标题】:Insert error : from R to Access DB 【发布时间】:2017-04-11 18:15:02 【问题描述】:

使用以下代码将数据从 R 插入 Access DB

sql <- paste0("INSERT INTO test(test1,test2,test3) 
          VALUES('",df1$test1,"','",df1$test2,"','",df1$test2,"',)")
appendRecords <- lapply(sql, function(x) sqlQuery(channel, x))

列 Test1 的文本数据包含特殊字符,例如 (' " ,),因为我收到以下错误

[1] "42000 -3100 [Microsoft][ODBC Microsoft Access Driver] Syntax error 
(missing operator) in query expression '\\\\.\\ROOT\\XXXX' \\n  \\n...''."

列中的数据 (a'\\.\ROOT\XXXX' \n \n...''.)

如何解决这个问题??

【问题讨论】:

最后一个值后面好像多了一个逗号。 sql &lt;- paste0("INSERT INTO test(test1,test2,test3) VALUES('",df1$test1,"','",df1$test2,"','",df1$test2,"')"),而且你可能想使用sqlUpdate 而不是sqlQuery,因为你没有什么可以在这里获取。 我可以插入其他值。当数据包含特殊字符时,它会忽略该记录 '\\.\ROOT\XXXX' 是您数据框中的原始字符串吗?可能值得搜索 R 编码/解码字符串? 是的,我 20 % 的数据会有特殊字符 【参考方案1】:

无法找到永久解决方案。 所以我做了临时解决方案,希望这对大家有帮助。

  df1$test1 = gsub("'", "", as.character(df1$test1)) # this remove '.

然后将其插入数据库。

【讨论】:

以上是关于插入错误:从 R 到 Access DB的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2013 从 VBA 调用插入查询并出现奇怪的错误

从 vb.net 将值插入 Access db

MS access运行SQL不插入数据,没有错误

从文本框表单中将多行插入到单个表中 - Access 2010

从 NetBeans 插入 Access 数据库

Access SQL - 插入带有空字段的记录?