SQL 直通 SAS/ SAS EG - 返回一个表



>Case:我想从 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;
到目前为止,

您只要求 SAS 在数据库中执行查询。若要将表返回到 SAS 工作库,需要在 SAS 端包含创建表语句。

例如

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;

编辑:根据评论更改声明

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;

最新更新