RODBC - Выберите * Fails в Oracle, но можете указать столбцы - PullRequest
2 голосов
/ 08 февраля 2012

Я в тупике. Используя RODBC и подключаясь к базе данных Oracle, я успешно исследовал свою таблицу, используя следующее:

sqlColumns(channel, "tablename", schema="schema")$COLUMN_NAME

Я даже могу запросить таблицу, используя:

temp <- sqlQuery(channel, "SELECT Col1, Col2 FROM table")

и данные возвращаются.

Однако, это не возвращает правильные данные:

temp <- sqlQuery(channel, "SELECT * FROM table")

Вот что вернулось:

 [1] PRIMARY_KEY    LASTMODIFIEDBY ?              ?.1            ?.2           
 [6] ?.3            ?.4            ?.5            ?.6            ?.7           
[11] ?.8            ?.9            ?.10           ?.11           ?.12          
[16] ?.13           ?.14          
<0 rows> (or 0-length row.names)

Есть идеи, почему SELECT * не работает, но я могу вернуть действительные данные при указании столбцов? Для полноты я перечислил детали R и Oracle ниже.

> R.Version()
$platform
[1] "i386-pc-mingw32"

$arch
[1] "i386"

$os
[1] "mingw32"

$system
[1] "i386, mingw32"

$status
[1] ""

$major
[1] "2"

$minor
[1] "14.1"

$year
[1] "2011"

$month
[1] "12"

$day
[1] "22"

$`svn rev`
[1] "57956"

$language
[1] "R"

$version.string
[1] "R version 2.14.1 (2011-12-22)"

> odbcGetInfo(channel)
       DBMS_Name         DBMS_Ver  Driver_ODBC_Ver Data_Source_Name      Driver_Name 
        "Oracle"     "11.01.0070"          "03.51"       "xxxxxxxx"    "SQORA32.DLL" 
      Driver_Ver         ODBC_Ver      Server_Name 
    "09.02.0000"     "03.80.0000"       "xxxxxxxxx" 
...