2017-04-11 42 views
0

使用下面的代碼,來自R插入數據訪問DB插入錯誤:從r到Access數據庫

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 ... '')。

如何解決這個問題?

+0

看起來像在最後一個值之後有一個額外的逗號。 'sql < - paste0(「INSERT INTO test(test1,test2,test3)VALUES('',df1 $ test1,'','」,df1 $ test2,'','「,df1 $ test2,'')」 )',並且你也可能想使用'sqlUpdate'而不是'sqlQuery',因爲這裏沒有東西可以讀取。 – Psidom

+0

我可以插入其他值。當數據包含特殊字符時,它將忽略該記錄 –

+0

數據框中的原始字符串是否是'\\。\ ROOT \ XXXX'?可能值得搜索R編碼/解碼字符串? – Psidom

回答

0

無法找到永久性解決方案。 所以我做了臨時解決方案,希望這可以幫助所有人。

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

之後將其插入到數據庫中。