从存储过程 R 中获取结果
Fetching Results from Stored Procedure R
我想知道如何从 R 中的存储过程中获取结果。我目前正在使用 RStudio 和 RODBC 包,并且正在使用
sqlQuery(conn, 'exec sp_name vars')
作为我的查询。存储过程应该 return 返回一个整数,表示生成数据的新行号。我该怎么做?目前,我的处决得到了 -2
或 character(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实际数据。
我想知道如何从 R 中的存储过程中获取结果。我目前正在使用 RStudio 和 RODBC 包,并且正在使用
sqlQuery(conn, 'exec sp_name vars')
作为我的查询。存储过程应该 return 返回一个整数,表示生成数据的新行号。我该怎么做?目前,我的处决得到了 -2
或 character(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实际数据。