RODBC无法分配存储器
简易R脚本RODBC无法分配存储器
library(RODBC)
odbChannel <- odbcConnect(dsn = "CTPRD03", uid = "BD_RPT_RO", pwd = "****")
df.test <- sqlQuery(channel = odbChannel, query = "select * from DUAL;")
df.test
close(odbChannel)
产生以下错误
光泽@ narc07shiny1dev:〜/软件> RSCRIPT ./RODBC_SIMPLE_TEST.r
错误odbcQuery(信道,查询,rows_at_time):
'Calloc'无法分配内存(18446744073709551616的22816 字节)
个呼叫:的SQLQuery - > odbcQuery - > .CALL
执行 停止
警告消息:
关闭不使用的RODBC处理1
的R外ODBC测试,能得到的结果。我不确定问题出在哪里。我认为这是RODBC。
已经卸载RODBC并重新安装了RODBC软件包,并且在此过程中没有错误,但仍然有相同的结果。
发现一个案例在那里有同样的问题,但没有任何解决方案。 什么是隔离问题的后续步骤,有什么建议?
你连接到什么类型的数据库体系结构?如果它与您正在使用的R的版本不匹配,则查询将不会运行。例如,如果您使用的是64位R,但您尝试连接到Microsoft Access 2007或更早版本的数据库(即32位),则无法运行查询。
如果您使用的是R Studio,请转到'工具'菜单,然后选择'全局选项',您可以更改您使用的R的版本以匹配数据库的版本。
我有一个类似的问题,并通过添加rows_at_time = 1到连接修复。
odbChannel <- odbcConnect(dsn = "CTPRD03", uid = "BD_RPT_RO", pwd = "****", rows_at_time = 1)
我也发现了这个Blurb的文档中:已报告为RODBC 1.3-0中存在错误,实际上是ODBC驱动程序,可以规避 错误
https://cran.r-project.org/web/packages/RODBC/RODBC.pdf
几个错误通过设置rows_at_time = 1(并且该参数 下的警告一直存在)。涉及的驱动程序是第三方Oracle驱动程序和旧的SQL服务器驱动程序。
你使用32位还是64位R? –
看起来确实可能存在x86和x64 ODBC和R的问题unixODBC-32bit-2.2.12-198.17 R版本3.1.2(2014-10-31) - “南瓜头盔” Copyright(C )2014 R统计计算基金会 平台:x86_64-suse-linux-gnu(64位) – klaasb01