插入错误:从 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 <- 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 调用插入查询并出现奇怪的错误