%UNQUOTE 는 마스킹된 특수문자를 다시 활성화하는 함수입니다.
마스킹된 문자를 그대로 되돌려서 %BQUOTE, %STR 등과는 반대되는 역할을 수행합니다.
이전에 인용되어 단순 텍스트로 취급한 특수문자를 다시 활성화 하는 것입니다.
문자열 내의 특수 기호(;, (, ), =, <, >, &, % 등을 다시 매크로 명령어로 사용할 때(무효화) %UNQUOTE 함수를 사용합니다.
■ 예시 1)
%let code = %nrstr(%put Hello, World!;);
%put &=code;
%unquote(&code);
%nrstr은 매크로 활성화 문자를 비활성화합니다.
code 변수에는 '%put Hello, World!;" 가 입력되어 있습니다.
하지만, %put은 매크로 문법이 아니라 문자열로 인식되고 ;(세미콜론) 역시 종료 구분자가 아니라 문자로 저장됩니다.
%put &=code;
%put 문에서 '& = 변수명' 을 사용한다면 &code 현재 값을 로그에 출력합니다.
그래서 %put 은 실행되지 않으며 문자열로 인식되어 '%put Hello, World!;"가 출력됩니다.
하지만 %unquote로 마스킹을 해제하게 되면 %put 이 매크로 호출문으로 인식되어 'Hello, World!' 값이 출력됩니다.
■ 예시 2)
%let name = carl;
%let msg = %nrstr(Hello, &name);
%put &=msg;
%put %unquote(&msg);
name 변수에 carl을 입력합니다.
msg 변수에 "Hello, &name" 이라는 문자열을 할당합니다. %nrstr은 매크로기호 (& ; 등)를 단순 텍스트로 취급합니다.
%put &=msg;
&msg 값을 그대로 로그에 출력하게 되면 & 기호가 해석되지 않기 때문에 문자 그대로 출력됩니다.
%put %unquote(&msg);
%unquote 문을 사용하게 되면 매크로 호출을 무효화 시켰던 것을 다시 재사용하게 되면서 " Hello, carl" 이라는 값을 출력하게 됩니다.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!