连接到MS SQL Server时RODBC临时表问题

前端之家收集整理的这篇文章主要介绍了连接到MS SQL Server时RODBC临时表问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在unix上运行R,我正在使用RODBC软件包连接到MS sql服务器.我可以执行一个返回结果的查询,但是如果我在SQL查询中的某个地方使用了一个临时表,那么返回一个空字符串.在浏览网页后,我认为问题可能是RODBC软件包是假设最终用户正在使用标准sql(而不是MS sql)编写的.我以下面的代码为例.

有趣的是,如果我使用RJDBC包,则临时表问题不存在.然而,RJDBC软件包导入速度很慢,甚至导入了80,000行(10列),并且会频繁地停顿,所以也不是一个选择.有没有人遇到这个问题?如果有没有想到的替代解决方案,我很乐意听到他们的意见.

看来我不是唯一有这个问题的人,也许这是一个R-Bug?
http://r.789695.n4.nabble.com/RODBC-results-from-stored-procedure-td897462.html

谢谢

这里是R的例子:

library(RODBC)
ch <- odbcConnect(insert your server info here)
qry4 <- "create table #tempTable(
    Test int
)
insert into #tempTable
select 2

select * from #tempTable
drop table #tempTable
"
df4 <- sqlQuery(ch,qry4)

解决方法

RODBC驱动程序似乎认为当sql Server返回整个语句完成的任何行数时.所以你需要在你调用的语句或存储过程的开头设置nocount.
set nocount on

这允许我使用在R中使用临时表的存储过程.

原文链接:https://www.f2er.com/mssql/81352.html

猜你在找的MsSQL相关文章