cancellare una libreria che viene utilizzata per la macro SAS compilata memorizzata

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

  •  06-07-2019
  •  | 
  •  

Domanda

Ho un programma che crea una macro compilata memorizzata in una libreria usando la sintassi:

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

Tuttavia non riesco a riassegnare la mia libreria (MyLib) in seguito - Ricevo il seguente messaggio (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.

Qualcuno può avvisare?

È stato utile?

Soluzione

In SAS 9.3 o versioni successive, è ora possibile cancellare libref utilizzando % SYSMSTORECLEAR Statement .

Altri suggerimenti

Risposta breve - Non credo che tu possa nella stessa sessione SAS .

Non puoi cancellare libref perché il catalogo macro (SASMACR) rimane aperto. Rimane aperto poiché richiede risorse per aprire e chiudere il catalogo e SAS presume che le macro compilate stiano andando veloce nei lavori di produzione e, come compromesso, perda alcune abilità dinamiche. Tutte le risorse devono essere chiuse prima di poter cancellare libref. Poiché SASMACR rimane in uso (e a meno di chiudere la sessione non sembra essere un modo per chiuderla), non c'è modo di cancellare il libref.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top