【问题标题】:Query Oracle DNS in RStudio在 RStudio 中查询 Oracle DNS
【发布时间】: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 中访问它。

标签: r dns rodbc


【解决方案1】:

我通过使用test&lt;-sqlQuery(channel,"select * from cnty", rows_at_time = 1,believeNRows = FALSE) 得到了这个工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多