반응형

/*******************************************************************************************************************
-- Title : [MSR] SQL Server R Services 시작 및 R 작동 확인
-- Reference : microsoft.com
-- Key word : sql server r services SSMS R sp_configure external script enabled sp_execute_external_script
                  메시지 39011 Message 39011
*******************************************************************************************************************/

-- Concept


-- 참고 
    
https://msdn.microsoft.com/ko-kr/library/mt604885.aspx


-- SQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
USE master;  
GO  
 
/*
-- 외부 스크립트 허용 설정
*/
Exec sp_configure 'external scripts enabled'1;
reconfigure;
 
Exec sp_configure 'external scripts enabled'
 
-- SQL Server Service를 Restart 필요(run_value = 1)
 
 
/*
-- R 스크립트 테스트
-- R은 대소문자 구분에 주의 필요.
*/
EXECUTE sp_execute_external_script
  @language = N'R'
, @script = N' mysum <- 40+2;
               OutputDataSet <- data.frame(mysum);'
, @input_data_1 = N'' 
WITH RESULT SETS (([col] int not null));
go
 
EXECUTE sp_execute_external_script
  @language = N'R'
, @script = N'OutputDataSet <- data.frame(mean(InputDataSet[,1]))'
, @input_data_1 = N'SELECT  bonus from [AdventureWorks].[Sales].[SalesPerson] with (nolock)'
WITH RESULT SETS ((col int not null));
go
 
EXECUTE sp_execute_external_script         
  @language =N'R'
, @script=N'OutputDataSet = InputDataSet'
, @input_data_1 =N'select 1 as hello'
WITH RESULT SETS (([hello] int not null));
go
 
EXECUTE sp_execute_external_script  -- Text 결과나 Message에 보임.
    @language =N'R'
,   @script=N'OutputDataSet<-InputDataSet;   
              message (R.Version()$version.string);'
with result sets (([Version] varchar));
go 

cs

 


-- sp_execute_external_script 파라미터
   

@language
  • The name of the supported language. Currently, only R is supported.
 
@script
  • The script that is executed (you can either type it all in to the stored procedure or reference it as a variable).
 
@input_data_1
  • The SQL query you’re using to gather data from the database goes here.
 
@input_data_1_name
  • The data frame that acts as the result set of the @input_data_1 query. This attribute is optional.
 
@output _data_1_name
  • The data frame variable in @script that holds the output data. This attribute is optional.


-- Message 39011 에러 발생시
    * SQL Server 구성관리자 오픈
    * CMD 창에서 "sqlservermanager13.msc" 입력   

메시지 39011, 수준 16, 상태 1, 줄 15

SQL Server가 실행 패드 서비스와 통신할 수 없습니다. 서비스 구성을 확인하세요.  

메시지 11536, 수준 16, 상태 1, 줄 16

EXECUTE 문의 WITH RESULT SETS 절에 1개의 결과 집합이 지정되었지만 런타임에 0개의 결과 집합만 보냈으므로 문이 실패했습니다.

    * SQL Server Launchpad 시작


반응형

+ Recent posts