RODBC无法分配内存

kla*_*b01 5 r unixodbc rodbc

简单的R脚本

library(RODBC)
odbChannel <- odbcConnect(dsn = "CTPRD03", uid = "BD_RPT_RO", pwd = "****")
df.test <- sqlQuery(channel = odbChannel, query = "select * from DUAL;")
df.test
close(odbChannel)
Run Code Online (Sandbox Code Playgroud)

产生以下错误

闪亮的@ narc07shiny1dev:〜/ software> Rscript ./RODBC_SIMPLE_TEST.r odbcQuery中的
错误(通道,查询,rows_at_time):
'
Calloc '无法分配内存(18446744073709551616 of 22816 bytes)
调用:sqlQuery - > odbcQuery - > .Call
执行停止
警告消息:
关闭未使用的RODBC句柄1

在R之外测试了odbc并且能够得到结果.我不确定问题出在哪里.我在想它是RODBC.

已经卸载了RODBC并重新安装了RODBC软件包,在此过程中没有出现任何错误,但仍然有相同的结果.

找到一个有同样问题的案例,但没有任何解决方案.什么是隔离问题的后续步骤,任何建议?

Psy*_*ush 9

我遇到了类似的问题,并通过向连接添加rows_at_time = 1来修复.

odbChannel <- odbcConnect(dsn = "CTPRD03", uid = "BD_RPT_RO", pwd = "****", rows_at_time = 1)
Run Code Online (Sandbox Code Playgroud)

我还在文档中找到了这个模糊:

https://cran.r-project.org/web/packages/RODBC/RODBC.pdf

在RODBC 1.3-0中已经报告了几个错误,这些错误实际上是ODBC驱动程序错误,可以通过设置rows_at_time = 1来避开(并且该参数下的警告一直存在).涉及的驱动程序是第三方Oracle驱动程序和旧的SQL Server驱动程序.


Mat*_*att -1

您连接到什么类型的数据库架构?如果它与您正在使用的 R 版本不匹配,则查询将不会运行。例如,如果您使用 64 位 R,但尝试连接到 Microsoft Access 2007 或更早版本的数据库(32 位),您将无法运行查询。

如果您使用的是 R Studio,请转到“工具”菜单,然后选择“全局选项”,您可以更改正在使用的 R 版本以匹配数据库的版本。