ストアドマクロライブラリのクリア

[OS]
[リリース] 9.3
[キーワード] マクロ、ライブラリ、クリア

[質問]

ストアドマクロ割当先のライブラリをクリアしようとすると、下記のエラーが発生します。どのようにすればクリアできるでしょうか。

ERROR: ライブラリ XXXXX は使用中のため、
 クリアまたは再割り当てはできません。
ERROR: LIBNAME ステートメントのエラーです。

[回答]

SAS9.2以前におきましては、一旦別のダミーのライブラリをストアドマクロ保存先として割り当て、ダミーマクロの作成を行うことで、元のライブラリのクリア、再割り当てが可能です。

例)

LIBNAME DATA "C:¥TEMP"; 
OPTIONS MSTORED SASMSTORE=DATA; 
%MACRO TEST /STORE; 
%MEND TEST; 

/* この状態では、DATA ライブラリ定義はクリアできない。*/ 
*LIBNAME DATA CLEAR; 

/* ダミー先一例としてSASUSER ライブラリを SASMSTORE= に指定 */ 
OPTIONS SASMSTORE=SASUSER; 

/* ダミーのマクロを作成 */ 
%MACRO DUMMY /STORE; 
%MEND DUMMY; 

/* この状態で DATA ライブラリがクリア可能になる */ 
LIBNAME DATA CLEAR; 

SAS 9.3では、%SYSMSTORECLEARステートメントが追加されており、上記のようなロジックを使用せずとも、クリアすることが可能となっております。

例)

LIBNAME DATA "C:¥TEMP"; 
OPTIONS MSTORED SASMSTORE=DATA; 
%MACRO TEST /STORE; 
%MEND TEST; 

%SYSMSTORECLEAR;

LIBNAME DATA CLEAR;