从存储过程 R 中获取结果

Fetching Results from Stored Procedure R

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

sqlQuery(conn, 'exec sp_name vars')

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

只是尝试 return 一个数字并将其存储在 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 服务器存储过程,添加一个 SET NOCOUNT ON 以避免可能干扰 RODBC 的 sqlQuery 的行结果输出,后者期望 table/query 数据为 return编辑。

通常对于大多数存储过程,如果需要 return实际数据。