加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:46:43 所属栏目:MsSql教程 来源:网络整理
导读:我在unix上运行R,我正在使用RODBC软件包连接到MS SQL服务器.我可以执行一个返回结果的查询,但是如果我在SQL查询中的某个地方使用了一个临时表,那么返回一个空字符串.在浏览网页后,我认为问题可能是RODBC软件包是假设最终用户正在使用标准SQL(而不是MS SQL)编
我在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中使用临时表的存储过程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读