我很难过。使用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"