SQL传递SAS / SAS EG - 返回一个表

时间:2016-03-08 13:16:55

标签: sas pass-through

案例: 我想从SAS运行SQL传递,我想在我的工作库中输出一个输出。

问题: 日志告诉我一切正常,但没有数据集输出? 我是这个领域的新手 - 请帮忙。

Proc sql;

connect to odbc as mydb
    (dsn=x user=x password=x);


execute (  
DECLARE @return_value int 
EXEC    fpt.usp_Marcus_Buy_and_Sell_amounts
@Country ='DK',
@Date ='2016-01-01', 
@Date2='2016-02-01'  

SELECT  'Return Value' = @return_value 







        ) by mydb;


Quit;

2 个答案:

答案 0 :(得分:1)

到目前为止,您只是要求SAS在数据库中执行查询。 要将表格返回到SAS工作库,您需要在SAS端包含一个create table语句。

e.g。

Proc sql;

connect to odbc as mydb
    (dsn=x user=x password=x);

create table mydb_return as select * 
       from connection to mydb
         ( EXEC fpt.usp_Marcus_Buy_and_Sell_amounts
            @Country ='DK',
            @Date ='2016-01-01', 
            @Date2='2016-02-01' 
         );

disconnect from mydb;

Quit;

编辑:根据评论更改语句

答案 1 :(得分:0)

Jetzler的答案很棒! 虽然我发现我可以将代码简化为:

Proc sql;

connect to odbc as mydb
    (dsn=x user=x password=x);

create table mydb_return as select * 
       from connection to mydb
         (EXEC    fpt.usp_Marcus_Buy_and_Sell_amounts
@Country ='DK',
@Date ='2016-01-01', 
@Date2='2016-02-01'  
 ) ;

disconnect from mydb;


Quit;