从存储过程 R 提取结果



我想知道如何从 R 中的存储过程中获取结果。我目前正在将RStudio与RODBC软件包一起使用,并且正在使用

sqlQuery(conn, 'exec sp_name vars')

作为我的查询。存储过程应该返回一个整数,该整数表示生成数据的新行号。我该怎么做?目前,我-2character(0)恢复了我的处决。

只是尝试返回一个数字并将其存储在 R 面。

存储过程

USE [Internship]
GO
/****** Object:  StoredProcedure [dbo].[pCreateKMeanTest]    Script Date: 7/20/2017 12:51:28 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER procedure [dbo].[pCreateKMeanTest] 
(@DataSetName varchar(255)
,@SQLStatement varchar(5000) 
,@ColumnUsed varchar(2900)
,@TotClusters int )
as
/*
exec pCreateKMeanTest 
@DataSetName = '[dbo].[vAccountMemberProductDetailWithBehavior]'
,@SQLStatement = 'select [demo_age], Profit_PnlAmt, Census_HomeNearestBranchDistance from [dbo].[vAccountMemberProductDetailWithBehavior]'
,@ColumnUsed = 3
,@TotClusters = 5
*/

begin transaction
insert into dbo.KMean
(ExecutedDateTime
,DataSetName
,SQLStatement
,ColumnUsed
,TotClusters)
select 
getdate()
,@DataSetName
,@SQLStatement
,@ColumnUsed
,@TotClusters
select max(TestID) from dbo.KMean (nolock)
commit transaction

GO

正如评论的那样,因为它可能有助于未来的读者:

对于 SQL Server 存储过程,请添加一个SET NOCOUNT ON以避免行结果输出可能会干扰 RODBC 的sqlQuery,该需要返回表/查询数据。

通常,对于大多数存储过程,如果需要返回实际数据,请将任何SELECT语句移动到正在执行操作查询(即UPDATEINSERT INTO(的事务块之外。

最新更新