BookmarkSubscribeRSS Feed

SAS Macro - %UNQUOTE

Started a week ago by
Modified a week ago by
Views 98

%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!' 값이 출력됩니다.

 

 

image.png

 

 

 

 

■ 예시 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" 이라는 값을 출력하게 됩니다.

 

 

image.png

 

 

Contributors
Version history
Last update:
a week ago
Updated by:

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

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!

Register now

Article Labels
Article Tags