我正在使用SAS企业指南6.1,并正在利用工具下的“当服务器连接时提交SAS代码”功能,SAS程序来提交我的所有个人凭证,libname。是的,我知道使用SAS管理控制台可能有一种更简单的方法,但这现在不是一个选项。
我需要在每个项目中分配几个Teradata,但问题是有时我(或者更常见的是我的团队中的其他人)会更改我的密码,而忘记在启动代码中更改密码。这会导致几次不正确的尝试,并立即将我拒之门外。我想做几件事:
这是我的尝试,我有困难的附加日志和设置电子邮件声明。
*Define personal credentials;
%let myemail=gollum@middleearth.com;
filename temp email "&myemail";
*Define Teradata credentials;
%let tera_user=Gollum; /*Teradata Username*/
%let tera_pwd=#filthy_hobbitses; /*Teradata Password*/
*Conditionally assign libraries;
%macro libsetup();
libname library1 teradata user=&tera_user password="&tera_pwd" tdpid=terap schema=library1 fastload=yes bulkload=yes fastexport=yes;
%if &syslibrc=0 %then
%do;
libname library2 teradata user=&tera_user password="&tera_pwd" tdpid=terap schema=library2 fastload=yes bulkload=yes fastexport=yes;
libname library3 teradata user=&tera_user password="&tera_pwd" tdpid=terap schema=library3 fastload=yes bulkload=yes fastexport=yes;
*more library statements here;
%end;
%else
%do;
data _null_;
file temp
subject="TERADATA CREDENTIALS ERROR"
attach=("put SAS LOG filename here");
put 'Teradata Login Failed. SAS LOG Attached.';
%abort abend;
%end;
%mend libsetup;
%libsetup;谢谢。
发布于 2015-01-03 18:10:02
不知道你是在寻找其他方法的建议,还是在电子邮件方面寻求帮助。
对于电子邮件,如下(未经测试)的内容应该有效:
filename __mymail email
to="gollum@middleearth.com"
from="gollum@middleearth.com"
subject="credential error"
attach="/home/mylog.log"
;
data _null_;
file __mymail;
put "Hi!";
run;注意执行SAS的服务器必须能够访问邮件服务器,并且实际需要的代码可能随邮件协议的不同而不同,等等。
为了附加日志,可能需要使用PROC PRINTTO将日志写入文件,然后再次使用PROC PRINTTO在发送电子邮件之前释放该文件。
HTH
https://stackoverflow.com/questions/27756655
复制相似问题