SAS宏变量无法在远程服务器中解析

时间:2014-01-29 11:51:00

标签: sas sas-macro

您好我在尝试访问远程服务器并下载数据的宏时遇到了一些问题。下面的宏代码是粗体,后面是日志数据。主要问题是传递给宏的数据在远程服务器上的调用中没有解析,但是如果执行了put语句。

我认为存在于宏中的数据的本地性质有些东西没有传递到远程服务器,%put在本地执行,但是远程执行的上传无法识别& sdb。 / p>

非常感谢思想和帮助。

%macro getcrspprices( dvar,rl, rh, mvar, sdb, odb, cdb); 
%let wrds=wrds.wharton.upenn.edu 4016; 
options comamid=TCP remote=WRDS; 
signon username= %%%% password="%%%%" ; 
rsubmit; 
libname crsp '/wrds/crsp/sasdata/a_stock'; 
%put &sdb; 
proc upload data=&sdb out=dta; 
run; *upload file from my computer; 

LOG数据以下斜体

后一部分的MPRINT输出:

MPRINT(GETCRSPPRICES):  ; libname crsp '/wrds/crsp/sasdata/a_stock';
SYMBOLGEN:  Macro variable SDB resolves to work.spinnerslist
work.spinnerslist
MPRINT(GETCRSPPRICES):   proc upload data=&sdb out=dta;
MPRINT(GETCRSPPRICES):   run;

然后错误以上传语句为中心:

proc upload data=&sdb out=dta;
                  -
                  22
                  200
WARNING: Apparent symbolic reference SDB not resolved.
ERROR 22-322: Syntax error, expecting one of the following: a name,
          a quoted string.
ERROR 200-322: The symbol is not recognized and will be ignored.

1 个答案:

答案 0 :(得分:1)

我刚刚找到了答案!要在远程服务器上获取本地定义的宏变量,请使用%syslput。更多信息:http://support.sas.com/techsup/technote/ts697.pdf

希望这有助于未来的挫折