Löschen einer Bibliothek, die für gespeicherte kompilierte SAS Makro verwendet wird
Frage
Ich habe ein Programm, das einen gespeicherte kompilierte Makro in einer Bibliothek mit der Syntax erstellt:
options mstored sasmstore=MyLib;
%macro MyMac() /store source des='My Macro';
%let x=1;
%mend;
Allerdings scheinen kann ich nicht meine Bibliothek (MyLib) danach erneut zuweisen - ich die folgende Meldung (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.
Kann mir jemand raten?
Lösung
SAS 9.3 oder höher, können Sie jetzt die libref deaktivieren Sie das % SYSMSTORECLEAR Statement .
Andere Tipps
Kurze Antwort - ich glaube nicht, können Sie in der gleichen SAS Sitzung .
Sie können nicht die libref ausblenden, da der Makrokatalog (SASMACR) offen bleibt. Es bleibt offen, da sie Ressourcen nimmt zu öffnen und den Katalog zu schließen und SAS geht davon aus, dass kompilierten Makros in Produktionsaufträgen für die Geschwindigkeit gehen und als Kompromiss, einige dynamischen Fähigkeiten verlieren. Alle Ressourcen müssen geschlossen werden, bevor Sie die libref löschen. Da SASMACR in Gebrauch bleibt (und kurz, um die Sitzung zu schließen, scheint keinen Weg, um es zu schließen), ther ist keine Möglichkeit, die libref zu löschen.