borrar una biblioteca que se está utilizando para la macro SAS compilada almacenada

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Tengo un programa que crea una macro compilada almacenada en una biblioteca usando la sintaxis:

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

Sin embargo, parece que no puedo reasignar mi biblioteca (MyLib) después; recibo el siguiente mensaje (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.

¿Alguien puede aconsejar?

¿Fue útil?

Solución

En SAS 9.3 o superior, ahora puede borrar el libref usando Declaración% SYSMSTORECLEAR .

Otros consejos

Respuesta corta: no creo que pueda en la misma sesión SAS .

No puede borrar el libref porque el catálogo de macros (SASMACR) permanece abierto. Permanece abierto ya que requiere recursos para abrir y cerrar el catálogo y SAS asume que las macros compiladas van a acelerar los trabajos de producción y, como compensación, pierden algunas habilidades dinámicas. Todos los recursos deben cerrarse antes de que pueda borrar el libref. Dado que SASMACR sigue en uso (y el cierre de la sesión no parece ser una forma de cerrarlo), no hay forma de borrar el libref.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top