【发布时间】:2017-03-08 05:15:44
【问题描述】:
我正在尝试通过存储过程从 SQL Server 运行基本的 R 脚本。我正在返回一个数据集,并且还想返回/输出一个变量,但我无法做到这一点。
下面是我的存储过程
DROP PROC IF EXISTS get_iris_dataset;
go
CREATE PROC get_iris_dataset
AS
BEGIN
declare @OutName float
EXEC sp_execute_external_script
@language = N'R'
, @script = N'
iris_data <- iris
out = 5.1;'
, @input_data_1 = N''
, @output_data_1_name = N'iris_data'
,@params= N'@out float OUTPUT'
,@out = @OutName OUTPUT
WITH RESULT SETS (("Sepal.Length" float not null,
"Sepal.Width" float not null,
"Petal.Length" float not null,
"Petal.Width" float not null, "Species" varchar(100)));
END;
return 0
go
我调用的过程如下:
declare @OutputVar float
exec @OutputVar = get_iris_dataset
print @OutputVar
它确实输出了数据集,但我无法存储 OutputVar 的值。
即使不输出数据集,也无法返回 OutputVar 的值,只能尝试捕获 OutputVar 的值。 任何帮助表示赞赏。
提前致谢!
【问题讨论】:
-
我在这里没有看到任何 R 代码。
-
只有 2 行 R 代码。 iris_data
标签: sql-server r microsoft-r