[英]SAS connect to Teradata - Using 2 accounts (switch)
有人可以帮忙吗? 几年来我没有使用过SAS,并且在连接Teradata时需要一些帮助。
如果一天中的时间在7 pm-6:59am之间,我想使用ACCT1连接到Teradata;如果一天中的时间在7 am-6:59pm之间,我想使用Acct2连接到Teradata。
%let
acct1="mismktdev"
acct2="mismktprod"
%include
%macro t_cnnct;
options nomprint;
connect to teradata (tdpid="&tpidxyz" user="&misuid"
password="&mispwd" account="&acct1" mode=teradata);
options mprint;
proc sql;
connect to teradata (user="&terauser" password="&terapwd" mode=teradata);
execute (SET QUERY_BAND = 'Application=PrimeTime;Process=Daily;script=pt_add_history_v30.sas;' for session ) by teradata;
%mend t_cnnct;
proc sql;
Sel * from tblname;
您可以使用%let timenow=%sysfunc(time(), time.);
获取程序运行的时间,然后在您的宏中执行以下操作:
%macro test();
%let timenow=%sysfunc(time(), time.);
%put &timenow;
%if (&timenow > '19:00'T and &timenow < '06:59'T) %then %do;
/* Your Code for 7pm - 6:59am Here*/
%end;
%else %do;
/*Code for 7am - 6:59pm here*/
%end;
%mend;
%test();
您使用SAS宏变量的想法是正确的。 这是一个宏,用于定义所需的所有全局SAS宏变量(包括更改“帐户”字符串):
%macro t_cnnct;
%global tdserver terauser terapwd teraacct teradb;
%let tdserver=myTDPID;
%let terauser=myuserID;
%let terapwd=mYTDpassword;
%let teradb=myTDdatabase;
%let now=%sysfunc(time());
%if &now >= %sysfunc(inputn(07:00,time5.))
and &now <= %sysfunc(inputn(19:00,time5.))
%then %let teraacct=mismktdev;
%else %let teraacct=mismktprod;
%mend t_cnnct;
请注意,指定的SAS宏变量值不带双引号! 在代码中引用双引号时,请使用双引号。
接下来,只需在PROC SQL代码之前运行宏即可设置变量并在连接字符串中使用这些变量:
%t_cnnct;
proc sql;
connect to teradata (user="&terauser" password="&terapwd" account="&teraacct"
server="&tdserver" mode=teradata);
execute (
SET QUERY_BAND = 'Application=PrimeTime;Process=Daily;script=pt_add_history_v30.sas;' for session
) by teradata;
create table mySASds as
select *
from connection to teradata (
select *
from &teradb..tablename
);
quit;
请注意,您使用的tdpid=
选项是server=
选项的别名(我更喜欢)。 同样,您设置的查询范围将在整个PROC SQL
运行中保持有效。
这是使用相同宏变量的SAS libref的示例:
libname myTD teradata user="&terauser" password="&terapwd" account="&teraacct"
server="&tdserver" database="&teradb" mode=teradata);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.