我有一系列存储过程,所有存储过程都输出结果集以及在每个存储过程中创建的3/4临时表。
我想要做的是使用其中一个临时表中的数据创建SAS数据集表。目前,我所管理的所有内容都是sp。
的结果集此刻代码给出了sp结果集:
DATA table_name
SQL "EXEC sp_name '" & %parameter1 & "', '" & %parameter2 & "','" & %parameter3 & "'" ;
RUN;
因此,我可以引用一个临时表,而不是像示例中那样引用结果集吗?
谢谢!
答案 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数据集并执行该语句。