gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:17:01 24 4
gpt4 key购买 nike

我在 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 on。

set nocount on

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

关于sql - 连接到 MS SQL Server 时的 RODBC 临时表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4747768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com