在 RStudio 中查询 Oracle DNS

Posted

技术标签:

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

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

【讨论】:

以上是关于在 RStudio 中查询 Oracle DNS的主要内容,如果未能解决你的问题,请参考以下文章

通过 RODBC 通过 RStudio 运行 SQL 查询:如何处理哈希表?

有没有办法直接使用链接在 RStudio 中运行保存的 bigquery? [复制]

使用 RStudio 连接到本地存储的压缩 SQL 数据库并在其上运行查询

rtools没安装会怎样

与 R/RStudio 建立 Microsoft SQL Server 连接

使用 Rstudio 访问亚马逊 S3 存储桶