RODBCパッケージの機能を使用して、ODBCを正常に作成しましたが、データベースにクエリを実行しようとするとエラーメッセージが表示されます。INFORMIX 3.31 32ビットドライバー(バージョン3.31.00.10287)を使用しています。
channel <- odbcConnect("exampleDSN")
unclass(channel)
[1] 3
attr(,"connection.string")
[1] "DSN=exampleDSN;UID=user;PWD=****;DB=exampleDB;HOST=exampleHOST;SRVR=exampleSRVR;SERV=exampleSERV;PRO=onsoctcp ... (more parameters)"
attr(,"handle_ptr")
<pointer: 0x0264c098>
attr(,"case")
[1] "nochange"
attr(,"id")
[1] 4182
attr(,"believeNRows")
[1] TRUE
attr(,"colQuote")
[1] "\""
attr(,"tabQuote")
[1] "\""
attr(,"interpretDot")
[1] TRUE
attr(,"encoding")
[1] ""
attr(,"rows_at_time")
[1] 100
attr(,"isMySQL")
[1] FALSE
attr(,"call")
odbcDriverConnect(connection = "DSN=exampleDSN")
返されたオブジェクトの構造を照会して調査しようとすると、エラーメッセージ'chr [1:2] "42000 -201 [Informix] [Informix ODBCDriver][Informix]構文エラーが発生しました。"が表示されます。...」
具体的には、データベース内のすべてのテーブルをループし、10行を取得して、返されたオブジェクトの構造を調査する式を作成しました。
for (i in 1:153){res <- sqlFetch(channel, sqlTables(channel, tableType="TABLE")$TABLE_NAME[i], max=10); str(res)}
各反復は同じエラーメッセージを返します。どこから始めればいいですか?
追加情報:オブジェクト'res'を返すと、次のようになります-
> res
[1] "42000 -201 [Informix][Informix ODBC Driver][Informix]A syntax error has occurred."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'SELECT * FROM \"exampleTABLE\"'"