繁体   English   中英

解决远程PROC SQL(SAS)中的宏引用

[英]Resolving a macro reference within a remote PROC SQL (SAS)

在远程会话中,在远程会话中引用变量很麻烦。

我想要实现的是动态日期查询。 目前,脚本与静态WHERE语句配合正常。 但是,我尝试引用宏变量的所有内容,都以一种或另一种方式失败。

这有效:

WHERE SDD LIKE '2018-09%'

但这不是:

WHERE SDD LIKE '2018-"&monthn."%'
or
WHERE SDD LIKE '2018-"monthn"%'
or
WHERE SDD LIKE %str(%')2018-&monthn.%str(%')

所有建议表示赞赏


这或多或少是所有相关的代码:

*-------------------------------------------------------------------;
* LOGIN TO zOS                                                      ;
*-------------------------------------------------------------------;

%let    zos =   ********;
signon  zos     userid=&userid. password=&passw.;

*-------------------------------------------------------------------;
* PREPARE LOCAL VARIABLES FOR TRANSFER TO REMOTE                    ;
*-------------------------------------------------------------------;

%SYSLPUT MONTHN =   &monthn;    /* MONTHN = 11 */

*-------------------------------------------------------------------;
* OPEN CONNECTION, DOWNLOAD FLIGHTS, CLOSE CONNECTION AND SIGNOFF   ;
*-------------------------------------------------------------------;

rsubmit;        /* REMOTE COMPUTING START */

    %PUT &MONTHN;       /* GET LOCAL VARIABLES */

    ----
    Many lines of settings up the 
    wintel/sql connection
    ----

    %SYSLPUT MONTHN =   &monthn;

     rsubmit;

        %PUT &MONTHN;       /* GET LOCAL VARIABLES */

        proc sql dquote=sas;
           create table TKLM1WINTEL as
              SELECT *
              FROM   tables

              WHERE SDD LIKE '2018-"&monthn."%'
              /* WHERE SDD LIKE '2018-09%' */

         PROC download data=TKLM1WINTEL out=DBFILE;
         RUN;

     endrsubmit;

endrsubmit;     /* REMOTE COMPUTING END */

signoff;

好的,我只是在这个来源的帮助下自己弄清楚了。

正确的WHERE语句如下:

WHERE SDD LIKE %unquote(%str(%')2018-&monthn.%%str(%'))

这样的事情应该起作用。

data abc;
input id sdd $8.;
datalines;
1 2018-091
2 2018-081
;

%let month =09;
proc sql;
select * from abc
where sdd like "2018-&month.%";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM