格納されたコンパイル済みSASマクロに使用されているライブラリのクリア

StackOverflow https://stackoverflow.com/questions/1629999

  •  06-07-2019
  •  | 
  •  

質問

次の構文を使用して、ライブラリに保存されたコンパイル済みマクロを作成するプログラムがあります:

options mstored sasmstore=MyLib; 
%macro MyMac() /store source des='My Macro'; 
  %let x=1;
%mend;

ただし、後でライブラリ(MyLib)を再割り当てできないようです-次のメッセージが表示されます(sas 9.1.3):

ERROR: Unable to clear or re-assign the library MYLIB because it is still in use.
ERROR: Error in the LIBNAME statement.

誰でもアドバイスできますか?

役に立ちましたか?

解決

SAS 9.3以降では、%SYSMSTORECLEARステートメント

他のヒント

簡単な回答-同じSASセッションで できるとは思いません。

マクロカタログ(SASMACR)が開いたままなので、librefをクリアできません。カタログを開いたり閉じたりするのにリソースを必要とするため、SASは開いたままになります。SASは、コンパイルされたマクロが実動ジョブの速度を向上させ、トレードオフとしていくつかの動的能力を失うと想定しています。 librefをクリアするには、すべてのリソースを閉じる必要があります。 SASMACRは引き続き使用されるため(セッションを閉じることはセッションを閉じる方法ではないようです)、ライブラリ参照をクリアする方法はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top