저장된 컴파일 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 이상에서는 이제 Libref를 사용하여 %sysmstoreclear 문.

다른 팁

짧은 대답 - 나는 당신이 할 수 없다고 생각합니다 같은 SAS 세션에서.

매크로 카탈로그 (SASMACR)가 열려 있기 때문에 libref를 지우지 못합니다. 카탈로그를 열고 닫는 데 리소스가 필요하기 때문에 열려 있으며 SAS는 컴파일 된 매크로가 생산 작업의 속도를 높이고 상충 관계로 역동적 인 능력을 잃는다고 가정합니다. Libref를 지우려면 모든 리소스를 닫아야합니다. SASMACR은 사용 중이므로 (세션을 닫는 것이 부족한 것은 세션을 닫을 수있는 방법이 아닌 것 같습니다), Libref를 지울 수있는 방법은 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top