想要使用计算变量创建新表的存储过程

时间:2017-06-22 11:21:41

标签: oracle stored-procedures sas

我想使用Oracle中的表创建存储过程,并希望在SAS EG中访问。

我的代码如下。

create table xyz as 
select * from (   
  select a,b,c,d   
  from   table_name  
)   
pivot (MIN('X') for Variable_name in (   
  'PQR' as PQR, 'PGT' as PGT, 'KLD' as KLD, 
 'opd' as opd
  )    
)   
order  by Variable_name;

是否可以将此表作为存储过程?如果没有,那么请建议解决方案。

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您应该可以使用SQL传递来执行此操作。您只需要在SAS的libname语句中指定Oracle数据库,它将如下所示:

libname mydblib oracle user=user_name password=pw path='myoracleserver';

然后,您可以使用SAS中的proc sql来访问此内容。

proc sql;
connect using mydblib;

create table xyz as
select * from connection to mydblib (
select * from (   
  select a,b,c,d   
  from   table_name  
)   
pivot (MIN('X') for Variable_name in (   
  'PQR' as PQR, 'PGT' as PGT, 'KLD' as KLD, 
 'opd' as opd
  )    
)   
order by Variable_name
);
quit;

此代码在SAS工作库中创建表xyz