在Window XP 32b中使用R 2.13.0,
我正确地定义了一个我想在R中构建并从RODBC包发送到sqlQuery的查询。
我在向查询添加文件路径时遇到问题。
关于如何处理字符串中的反斜杠的建议,这里是我可以编写但导致错误的查询。
以下内容在Access中运行良好:
SELECT Tamis_Lavage.*
FROM Tamis_Lavage
IN "d:\Mes Documents\Pascal\03 - BiomFix\99 - Suivi Etude\01 - Donnees\Données STH\Test_Import\Copie de 20110623Acquisition.mdb"
在访问方面工作正常。
其翻译:
> MyQuery <- paste("
+ SELECT Tamis_Lavage.*
+ FROM Tamis_Lavage
+ IN \"d:\\Mes Documents\\Pascal\\03 - BiomFix\\99 - Suivi Etude\\01 - Donnees\\Données STH\\Test_Import\\Copie de 20110623Acquisition.mdb\" "
+ , sep="")
>
> tmp <- sqlQuery(con, query=MyQuery)
> tmp
[1] "42000 -1002 [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données ne peut pas trouver '[d:\\Mes Documents\\Pascal\\03 - BiomFix\\99 - Suivi Etude\\01 - Donnees\\Données STH\\Test_Import\\Copie de 20110623Acquisition.mdb]'. Assurez-vous que le nom de paramètre ou d'alias est valide, qu'il ne comprend pas de caractère ou de ponctuation incorrect et qu'il n'est pas trop long."
[2] "[RODBC] ERROR: Could not SQLExecDirect ' SELECT Tamis_Lavage.* \n FROM Tamis_Lavage\n IN \"d:\\Mes Documents\\Pascal\\03 - BiomFix\\99 - Suivi Etude\\01 - Donnees\\Données STH\\Test_Import\\Copie de 20110623Acquisition.mdb\" '"
> MyQuery
[1] " \n SELECT Tamis_Lavage.* \n FROM Tamis_Lavage\n IN \"d:\\Mes Documents\\Pascal\\03 - BiomFix\\99 - Suivi Etude\\01 - Donnees\\Données STH\\Test_Import\\Copie de 20110623Acquisition.mdb\" "
导致错误。
你能帮助翻译过程吗?
祝你好运 帕斯卡
答案 0 :(得分:2)
由于您引入的换行符\n
,您的MyQuery可能会出现问题。
尝试以下方法:
MyQuery <- paste(
"SELECT Tamis_Lavage.*",
"FROM Tamis_Lavage",
"IN 'd:\\Mes Documents\\Pascal\\03 - BiomFix\\99 - Suivi Etude\\01 - Donnees\\Données STH\\Test_Import\\Copie de 20110623Acquisition.mdb'")
有什么不同?
paste
的所有参数都不包含\n
。'
会更容易。 (这也有一个好处,你不必逃避报价。)