/*******************************************************************************************************************
-- 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 |
@language
-- sp_execute_external_script 파라미터
• 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 시작