2012-03-06 4 views
1

정확히 "통과율"에서 "%"는 무엇을 의미합니까? 나는 다른 사람들로부터이 코드를 얻었지만 코드는 잘 작동하지만 왜 변수 앞에 %를 써야하는지 이해할 수 없다. % 매크로라면 라이브러리에 매크로 코드가 표시되지 않습니다. 설명이 도움이 될 것입니다.SAS 패스 스루의 변수 앞에있는 "%"는 정확히/또는 의미합니까?

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; 
+0

어떤 유형의 DBMS에 연결하고 있습니까? – stevepastelan

+0

또한 매크로 호출인지 다시 확인하려면'% put % application_id; '와 같은 것을 시도해보고 로그에 아무 것도 쓰지 않는지 확인하십시오. – stevepastelan

+0

마지막으로 매크로를 통해로드되는 다른 매크로가 있는지 확인할 수 있습니다. autocall facility :'% put % sysfunc (getoption (sasautos));' – stevepastelan

답변

1

% 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 

... 매크로 호출을하고 UR 선택 쿼리의 예 definitions.For 자신의 매크로에 존재하는 값으로 전화를 교체 매크로 호출은 해당 정의를 검색하고 열을 선택하는 위치에 바꿉니다 ...

+0

감사합니다. 나는이 일을 더 잘 수행 할 수있는 방법이 있어야한다고 생각하고 있습니까? – JPC