我有以下代码:
%let host = HostThatSendsEmail;
%let todayDate = &SYSDATE9;
signon host;
rsubmit;
filename mail email to = ("PersonGettingEmail")
from= "PersonSendingEmail"
SUBJECT="Today is &todayDate";
data _null_;
file mail;
put 'Dear All';
put 'Today is &todayDate';
run;
endrsubmit;
运行代码时,宏日期不会输入到电子邮件中。生成的电子邮件应显示为:
亲爱的 今天是29Mar12。
相反它的内容是:亲爱的 今天是& TodayDate
我缺少一些代码吗?
答案 0 :(得分:5)
在数据步骤中尝试使用双引号。宏变量无法用单引号解析。
答案 1 :(得分:2)
您在本地创建了宏...但随后您登录了远程主机。您的SAS远程会话不了解本地主机上的宏。
使用%SYSLPUT是解决此问题的一种方法(Another link)。
将此代码放在SIGNON和RSUBMIT之间
%SYSLPUT TODAYDATE = &todayDate;
如果您希望远程主机上有大量宏变量。您可以将它们写入数据集并使用PROC UPLOAD将数据集移动到远程主机。