BookmarkSubscribeRSS Feed

SAS Macro - %UNQUOTE

Started ‎11-30-2025 by
Modified ‎11-30-2025 by
Views 344

%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:
‎11-30-2025 10:11 AM
Updated by:

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore Now →
Article Labels
Article Tags