BookmarkSubscribeRSS Feed

[5.4] Global and Local Symbol Tables

Started ‎06-16-2020 by
Modified ‎06-16-2020 by
Views 376

5.4 Global and Local Symbol Tables

 

안녕하세요^^

​오늘은 macro에서의 Global and Local Symbol Tables에 대해 알아보도록 하겠습니다.

​Global and Local Symbol Tables에서는

매크로 문의 Global symbol tables와 Local symbol tables의 차이에 대해 알아보고,

nested macro의 개념과 hierarchy of symbol tables에 대해 알아보도록 하겠습니다.

​Global symbol table은 SAS 초기화 단계동안 자동 매크로 변수와 함께 구성되며, 세션의 종료와 함께 삭제됩니다.

​Global macro 변수는 다음과 같은 단계에서 만들어질 수 있습니다.

 %LET

 DATA step의 SYMPUTX단계

 PROC SQL SELCE 문의 INTO 단계

 %GLOBAL 문장

 

일반적인 %GLOBAL 문장은 다음과 같이 구성됩니다.

  

SE22016101801561170.jpg

 

위의 문장은 하나 이상의 매크로 변수를

global symbol table에 null값으로 저장하며, SAS 프로그램의 어느 위치에서든 사용 가능합니다​.

그와는 다르게,

​​Local symbol table은 매크로 문장 내에서 parameter list를 지정했을 때나, 매크로 실행동안 생성되며,

​매크로 실행이 끝나면 삭제됩니다.

​Local macro 변수는 다음과 같은 단계에서 만들어질 수 있습니다.

 매크로 parameter 지정

 매크로 실행 단계

 매크로 실행 update 단계

 매크로문 내 어디에서든지

 

메모리상의 이점을 생각하면, 가능하다면 Local 변수를 global 변수 대신 사용하는 것이 좋습니다.

매크로문 내에서 local macro 변수를 지정하는 방법은 다음과 같습니다.

 

 %LET

 DATA step의 SYMPUTX단계

 PROC SQL SELCE 문의 INTO 단계

 %GLOBAL 문장

일반적인 %LOCAL 문장은 다음과 같이 구성됩니다.

 

SE22016101801585270.jpg

 

위의 문장은 하나 이상의 매크로 변수를 local symbol table에 null값으로 저장하며,

​오직 매크로 정의 안에서만 가능합니다.

​다음과 같은 예제처럼, %LOCAL문장을 사용하면,

GLOBAL TABLE이나 다른 LOCAL TABLE의 비슷한 이름의 변수와 섞여 사용되는 것을 막을 수 있습니다.

 

SE22016101801591970.jpg

 

추가적으로,

​선택적인 scope문으로 SYMPUTX문장을 살펴보도록 하겠습니다.

​이 문장은 매크로 변수가 어느 위치에 저장되어있는지 알려주는 문장입니다.

​일반적인 CALL SYMPUTX 문장은 다음과 같이 구성됩니다.

 

SE22016101801595070.jpg

 

G라는 것은 global symbol table을 의미하고, L은 현재 매크로 내의 local symbol table을 의미합니다.

​현재 매크로문에서 local symbol table이 존재하지 않는다면 local symbol table이 만들어집니다.

이상으로 macro에서의 Global and Local Symbol Tables에 대해 알아보았습니다.

​​

 

Contributors
Version history
Last update:
‎06-16-2020 10:12 PM
Updated by:

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand in the Innovate Hub.

Watch Now →
Article Labels
Article Tags