SAS:想知道如何将数据从WORK.WHATEVER表传递到Netezza表

时间:2018-10-23 19:44:00

标签: sql sas etl netezza

使用SAS V 9.xxx。

如何将数据从通用WORK库中的表传递到Netezza中的表。

现在,我可以从Netezza中取出数据并存储在WORK库中,例如:

/* using “connect to” */

proc sql;
connect to netezza (&us_mkt.);  
execute (

drop table &tempdir..SALES_TBL_TST1; 

create table &tempdir..SALES_TBL_TST1
as
   select * from &tempdir..SALES_TBL;
   /*select * from &tempdir..SALES_TBL */

) by netezza;
    disconnect from netezza;
quit;

/* using “connect using” */

proc sql;

   connect using ROLAP;

   drop table WORK.SALES_TBL_TST2;

     create table WORK.SALES_TBL_TST2 AS
   select * from connection to ROLAP
      (select * from USER_ROLAP.SALES_TBL);

   insert into WORK.SALES_TBL_TST2
   select * from connection to ROLAP
      (select * from &tempdir..SALES_TBL);

quit;

但是,如果我想将数据从WORK库放回Netezza,该怎么办?例如:

  insert into &tempdir..SALES_TBL_TST1   
select * from WORK.SALES_TBL_TST2;

有什么办法吗?

预先感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用libname语句来移动数据。 需要批量加载(以更快的速度批量加载数据)以快速传输记录。一旦libnames被定义。可以通过proc sql,datastep或proc append将数据从工作区移到Netezza。移动数据代码类似于两个SAS库之间的数据移动(语法上合理)。

下面是从http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a003181092.htm复制的代码

 libname sasflt 'SAS-data-library';


 libname net_air netezza user=louis pwd=fromage
    server=air2 database=flights;

Proc sql示例

 proc sql;
create table net_air.flights98
   (bulkload=YES bl_options='logdir "c:\temp\netlogs"') 
    as select * from sasflt.flt98;
quit;