effacement d'une bibliothèque utilisée pour la macro SAS compilée stockée

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

  •  06-07-2019
  •  | 
  •  

Question

J'ai un programme qui crée une macro compilée stockée dans une bibliothèque en utilisant la syntaxe suivante:

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

Cependant, je n'arrive pas à réassigner ma bibliothèque (MyLib) par la suite. Le message suivant (sas 9.1.3) s'affiche:

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

Quelqu'un peut-il conseiller?

Était-ce utile?

La solution

Dans SAS 9.3 ou version ultérieure, vous pouvez maintenant effacer le libref à l’aide de Instruction% SYSMSTORECLEAR .

Autres conseils

Réponse courte - Je ne pense pas que vous puissiez participer à la même session SAS .

Vous ne pouvez pas effacer le fichier libref car le catalogue de macros (SASMACR) reste ouvert. Il reste ouvert, car il faut des ressources pour ouvrir et fermer le catalogue et SAS suppose que les macros compilées atteignent la vitesse dans les travaux de production et, en contrepartie, perdent certaines capacités dynamiques. Toutes les ressources doivent être fermées avant de pouvoir effacer le libref. Étant donné que SASMACR reste en cours d'utilisation (et qu'il est presque impossible de fermer la session, cela ne semble pas être un moyen de la fermer), il n'y a aucun moyen d'effacer le libref.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top