在 Proc SQL Teradata 直通中使用 SAS 宏变量 [英] Use SAS Macro Variable within Proc SQL Teradata passthrough
本文介绍了在 Proc SQL Teradata 直通中使用 SAS 宏变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
I have a SQL statement that I wish to automate using SAS EG (9.4). The following statement has been tested in Teradata SQL Assistant and works.
select * from TD.DATA where date='2015-06-01'
Now I wish to push this through a proc SQL pass through, and feed the date to the SQL program, like so....
proc sql;
connect to teradata as tera(user=&tera_user password="&tera_pwd" tdpid=terap);
create table MYDATA as
select * from connection to tera
(
select * from TD.DATA where date='2015-06-01'
);
disconnect from tera;
quit;
The above code has been tested and produces the exact same output as the previous SQL statement. However, what I really want is to do something like this:
%let input_date='2015-06-01';
proc sql;
connect to teradata as tera(user=&tera_user password="&tera_pwd" tdpid=terap);
create table MYDATA as
select * from connection to tera
(
select * from TD.DATA where date=&input_date.
);
disconnect from tera;
quit;
I have tried various combinations of quotations and different date formats....what am I missing here? Thanks.
解决方案
You can use the %BQUOTE()
macro function to resolve macro variables within single quotes.
%let input_date = 2015-06-01; proc sql; connect to teradata as tera(user=&tera_user password="&tera_pwd" tdpid=terap); create table MYDATA as select * from connection to tera ( select * from TD.DATA where date = %BQUOTE('&INPUT_DATE') ); disconnect from tera; quit;
这篇关于在 Proc SQL Teradata 直通中使用 SAS 宏变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文