带有文件路径名的 R ODBC SQL 查询(例如 INSERT INTO ... IN ...)
在 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"
在 Access 中运行良好。
它的翻译:
> 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\" "
导致错误。
您能在翻译过程中提供帮助吗?
此致 帕斯卡
Using R 2.13.0 with Window XP 32b,
I am struglling with defining properly a query that I'd like to build in R and send to sqlQuery from the RODBC package.
I have a problem with adding a filepath to the query.
following advices on how to deal with backslash in strings, here is the query that I can write but that lead to an error.
The following is running well in 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"
is working fine in access.
its translation :
> 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\" "
leads to an error.
Could you help in the translation process ?
Best regards
Pascal
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于您引入的换行符
\n
,您的 MyQuery 可能会出现问题。尝试以下操作:
有什么不同?
paste
的参数均不包含\n
。'
更容易。 (这还有一个好处是您不必转义引号。)Your MyQuery could be problematic because of the newlines
\n
that you introduced.Try the following:
What is different?
paste
contains a\n
.'
when working embedding quotes in strings. (This also has the benefit that you don't have to escape the quotes.)