0

Windows 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\" "

エラーにつながります。

翻訳プロセスを手伝っていただけませんか?

よろしくパスカル

4

1 に答える 1

2

MyQuery は、\n導入した改行が原因で問題になる可能性があります。

次のことを試してください。

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
  • '文字列に引用符を埋め込む作業をするときは、一重引用符を使用する方が簡単だと思います。(これには、引用符をエスケープする必要がないという利点もあります。)
于 2011-06-24T15:34:02.170 に答える