使用 RODBC 将 SQL 存储过程结果转换为 data.frame 格式
Posted
技术标签:
【中文标题】使用 RODBC 将 SQL 存储过程结果转换为 data.frame 格式【英文标题】:Getting SQL stored procedure results into data.frame format using RODBC 【发布时间】:2011-12-09 19:42:33 【问题描述】:我正在使用 RODBC 包在我的 SQL 服务器中查询结果。在我的 SQL Server Mgmt 中执行时,我编写了某个存储过程。 studio(例如),返回一个表。但是,当我通过 R 运行查询时,它返回 character(0)
# Execute command...
sqlQuery(production,"exec port.tdp_RISK2_ModelRunCompare @ModelRunId1 = 399")
奇怪的是……当我做类似的事情时……
sqlQuery(production,"exec sp_who")
我得到一个结果表...
帮助?
【问题讨论】:
那么你在sql server中有一个名为port的架构? 【参考方案1】:我遇到了同样的问题。
您可以尝试使用:
set nocount on
在 MS SQL Server 存储过程中,因此它只返回一个数据集。
问候,
【讨论】:
存储过程不应该通过“PRINT”命令打印任何消息也是非常重要的。 喜欢这个链接codeworkaround.tumblr.com/post/38942730894/…【参考方案2】:试试这个:
sqlQuery(production,"exec port.tdp_RISK2_ModelRunCompare @ModelRunId1 = 399", errors=FALSE)
【讨论】:
【参考方案3】:还可以尝试写入新的数据框。当我尝试使用 sqlQuery 函数覆盖现有数据框时,我不断收到 character(0)。
【讨论】:
以上是关于使用 RODBC 将 SQL 存储过程结果转换为 data.frame 格式的主要内容,如果未能解决你的问题,请参考以下文章
将 odbc::dbconnect 转换为 rodbc::odbcDriverConnect
使用 RODBC 和 MS SQL Server 的长时间运行查询超时