使用宏变量将值从Netezza传递回SAS

时间:2018-10-10 18:26:50

标签: sql sas netezza sas-macro

我们正在使用SAS 7.13 HF1(7.100.3.5419)(64位)

我目前正在看一则帖子,该帖子显示了如何将值从SAS传递到您要连接的数据库。这是下面的例子。您可以看到它们采用了宏变量StartDate,并将其传递给Teradata以在查询中使用。

%let StartDate = 2016/01/01;

proc sql;
   connect to teradata 
    (BULKLOAD=YES MODE=TERADATA user=&user. Password=&passwd.);

   CREATE TABLE WorkTest.test AS
   select * from connection to teradata
   ( 
        SELECT 
            TOP 10 *      
        FROM SomeCalendarData
        WHERE SomeDate = %bquote('&StartDate.');
   ); 
quit;

我想走另一条路。

如何从类似的查询中读取值,只有我的数据库是Netezza,然后以某种方式将其传递给SAS中的宏变量?

谢谢!

1 个答案:

答案 0 :(得分:2)

您将使用

SELECT <expression> INTO :<macro_var>'

声明。这在PROC SQL查询中可用,但在传递代码中不可用,因此看起来像

proc sql;
   connect to teradata 
    (BULKLOAD=YES MODE=TERADATA user=&user. Password=&passwd.);

   select somedate into :my_macro_var from connection to teradata
   ( 
        SELECT somedate      
        FROM SomeCalendarData
        WHERE id = 101;
   ); 
quit;

在此处查看文档:{​​{3}}