2016-09-12 4 views
0

출력으로 두 개의 테이블을 생성하는 프로 시저가 있지만이를 실행할 때 오류가 발생합니다. 두 테이블을 로컬 변수에 전달하려고합니다. 나는이 코드를 실행하면 SQL 프로 시저에서 여러 테이블의 출력을 처리하는 방법?

DECLARE @model_data_stats TABLE (var VARCHAR(150), center FLOAT, scale FLOAT); 
DECLARE @model_log_stats TABLE (var VARCHAR(150), zero INT, plusone INT, plustwo INT); 
DECLARE @model_logit VARBINARY(MAX); 

EXEC sp_execute_external_script @language = N'R', 
    @script = N' 
     #R script, irrelevant to question 
     #the following variables are assigned: 
     data_stats <- table 
     log_stats <- table 
     trained_model <- varbinary(max) data type 
    ', 
    @input_data_1 = N'SELECT * FROM dbo.Table', 
    @params = N'@data_stats TABLE (var VARCHAR(150), center FLOAT, scale FLOAT) OUTPUT, 
       @log_stats TABLE (var VARCHAR(150), zero INT, plusone INT, plustwo INT) OUTPUT, 
       @trained_model VARBINARY(MAX)', 
    @data_stats = @model_data_stats OUTPUT, 
    @log_stats = @model_log_stats OUTPUT, 
    @trained_model = @model_logit OUTPUT; 

은 내가 오류입니다 :

Msg 156, Level 15, State 1, Line 1 
Incorrect syntax near the keyword 'TABLE'. 

TABLE의 occurance 오류를 생성하지만 내 생각 엔이 부분 인 나에게조차 특히 명확하지 않다 어디에 출력 변수는 (@params 이후) 정의됩니다. DECLARE 진술만으로도 충분합니다.

제 생각 엔 잘못된 프로 시저의 출력을 선언하고 있습니다. 올바른 방법이 무엇인지 확신 할 수 없습니다. 도와 주시면 대단히 감사하겠습니다!

답변

0

몇 가지 추가 연구가 끝나면 내가 여기서하려고하는 것은 불가능하다는 것을 발견했습니다. MS knowledge base에서 :

SQL 서버 2016, 저장 프로 시저 sp_execute_external_script에서 R의 출력은 단일 data.frame 또는 세트로 제한된다. 이 제한은 나중에 제거 될 수 있습니다.

그러나 데이터 집합 외에도 다른 형식의 출력을 반환 할 수 있습니다. 예를 들어 하나의 데이터 세트를 입력으로 사용하여 모델을 교육 할 수 있지만 통계 테이블을 출력으로 반환하고 훈련 된 모델을 객체로 반환 할 수 있습니다.