简单的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软件包,在此过程中没有出现任何错误,但仍然有相同的结果.
找到一个有同样问题的案例,但没有任何解决方案.什么是隔离问题的后续步骤,任何建议?
我遇到了类似的问题,并通过向连接添加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 版本以匹配数据库的版本。