% MACRO X;VAR% MEND;
Приведенный выше пример является определением макроса.
В вашем вопросе все столбцы с% фактически выполняют вызовы макросов и заменяют вызовы значениями, присутствующими в ихопределения макросов. Например, в вашем запросе выбора ...
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
Все вышеперечисленные вызовы макросов извлекут соответствующие определения и заменят их вместо столбцов выбора ...