what exactly does "%" in pass through means ? I got this code from others, the code works fine but I just don't understand why would have to put % in front of the variables. If it's a %macro I don't see any macro code in library. Any explanation would help
proc sql;
connect to odbc as d(datasrc=source);
create table out as select * from connection to d
(
select
t.id,t.rule_id,
%application_id,
t.date,
%dpv, %dpvfn1, %dpvfn2, %dpvfn3,
%AddressValid,%AddressValidMsg,%AddressType,
from &db2 t
join &db3 dxs on t.id=dxs.id
left join &db4 dxr on t.id=dxr.id
);
disconnect from d;
quit;
%MACRO X; VAR %MEND;
The above example is a definition of a macro.
In your question, all the columns with % are actually doing macro calls and replacing the calls with the values present in their macro definitions.For eg in ur select query...
select
t.id,t.rule_id,
%application_id,
t.date,
%dpv, %dpvfn1, %dpvfn2, %dpvfn3,
%AddressValid,%AddressValidMsg,%AddressType,
from &db2 t
join &db3 dxs on t.id=dxs.id
left join &db4 dxr on t.id=dxr.id
%application_id,%dpv, %dpvfn1, %dpvfn2, %dpvfn3,%AddressValid,%AddressValidMsg,%AddressType
All these above macro calls will retrieve their corresponding definitions and replace them in the place of your select columns...