从存储过程临时表创建数据集表

时间:2014-12-10 13:01:19

标签: sql sql-server stored-procedures sas temp-tables

我有一系列存储过程,所有存储过程都输出结果集以及在每个存储过程中创建的3/4临时表。

我想要做的是使用其中一个临时表中的数据创建SAS数据集表。目前,我所管理的所有内容都是sp。

的结果集

此刻代码给出了sp结果集:

DATA table_name
SQL "EXEC sp_name '" & %parameter1 & "', '" & %parameter2 & "','" & %parameter3 & "'" ;
RUN;

因此,我可以引用一个临时表,而不是像示例中那样引用结果集吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用SQL passthrough语句实现此目的:

proc sql;
    connect to odbc as YourAlias ( dsn = YourDSNName connection = SHARED );
    execute (
            exec uspYourStoredProcedure;
            ) by YourAlias;

create table SAS.YourDataSet as 
    select * 
    from connection to YourAlias (
                                  select * 
                                  from #TempTableCreatedAbove
                                  );
disconnect from YourAlias;
quit;

您需要按如下方式修改示例:

YourAlias =为连接指定别名

YourDSNName =您的系统DSN用于连接

uspYourStoredProcedure =替换为存储过程的名称

YourDataSet =为您的新SAS数据集提供名称

#TempTableCreatedAbove =替换为执行存储过程而创建的临时表的名称

替换上面的值后,您应该看到一个新的SAS数据集并执行该语句。