SAS连接到Teradata-使用2个帐户(交换机)
有人能帮忙吗?我已经有几年没有使用SAS了,在连接Teradata时需要一些帮助 如果一天的时间在晚上7点到早上6点59分之间,我想使用ACCT1连接到Teradata;如果一天的时间在早上7点到下午6点59分之间,我想使用Acct2连接到TeradataSAS连接到Teradata-使用2个帐户(交换机),sas,teradata,Sas,Teradata,有人能帮忙吗?我已经有几年没有使用SAS了,在连接Teradata时需要一些帮助 如果一天的时间在晚上7点到早上6点59分之间,我想使用ACCT1连接到Teradata;如果一天的时间在早上7点到下午6点59分之间,我想使用Acct2连接到Teradata %let acct1="mismktdev" acct2="mismktprod" %include %macro t_cnnct; options nomprint; connect to t
%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();
%宏测试();
%让timenow=%sysfunc(time(),time.);
%现在就放&timenow;
%如果(&timenow>'19:00'T和&timenow<'06:59'T)%;
/*您的密码是晚上7点到早上6点59分*/
%结束;
%否则%会;
/*这里的代码是早上7点到下午6点59分*/
%结束;
%修补;
%test();
您使用SAS宏变量的想法非常正确。下面是一个宏,用于定义所需的所有全局SAS宏变量(包括更改“帐户”字符串):
请注意,您使用的tdpid=
选项是server=
选项的别名(我更喜欢它)。此外,您设置的查询范围将在整个PROC SQL
运行期间保持有效
下面是使用相同宏变量的SAS libref示例:
libname myTD teradata user="&terauser" password="&terapwd" account="&teraacct"
server="&tdserver" database="&teradb" mode=teradata);
%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;
libname myTD teradata user="&terauser" password="&terapwd" account="&teraacct"
server="&tdserver" database="&teradb" mode=teradata);