【发布时间】:2017-11-24 12:42:45
【问题描述】:
我正在使用带有 RODBC 包的 RStudio,使用以下代码
require(RODBC)
channel<-odbcConnect(dsn = "USA", uid = "AA", pwd = "***" )
odbcGetInfo(channel)
这会返回所有详细信息,但是当我尝试执行 sql 查询时
test<-sqlQuery(channel,"select * from cnty", rows_at_time = 1)
它返回一个错误
Error in odbcFetchRows(channel, max = max, buffsize = buffsize, nullstring = nullstring, :
negative length vectors are not allowed
如果我打开 Microsoft AccessDB - 外部数据 -ODBC 数据库 - 链接到数据源单击机器数据源并选择源,然后允许我进行选择查询,则此方法有效。
我也试过
debug(odbcFetchRows) test<-sqlQuery(channel,"select * from cnty", rows_at_time = 1)
这会返回
function (channel, max = 0, buffsize = 1000, nullstring = NA_character_,
believeNRows = TRUE)
{
if (!odbcValidChannel(channel))
stop("first argument is not an open RODBC channel")
.Call(C_RODBCFetchRows, attr(channel, "handle_ptr"), max,
buffsize, as.character(nullstring), believeNRows)
}
【问题讨论】:
-
我想我现在已经通过添加 ,believeNRows = FALSE) 部分完成了这项工作。这已经停止了错误,尽管现在当我尝试执行选择查询时,它显示错误“42S02 942 [Oracle][ODBC][Ora]ORA-00942: table or view does not exist 尽管我知道它确实存在,因为我可以在 Excel 或 AccessDB 中访问它。