Благодаря функциональности из пакета RODBC я успешно создал ODBC, но получаю сообщения об ошибках при попытке запросить базу данных. Я использую 32-разрядный драйвер INFORMIX 3.31 (версия 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] [Драйвер ODBC Informix] [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\"'"