2012-02-27 2 views
5

오류가 발생하여 SAS 프로그램을 중지하는 데 매크로를 사용하지만 항상 서버에서 연결이 끊어지면 임시 데이터 세트를 더 이상 가져올 수 없습니다.오류시 SAS 프로그램 중지

는 I가 시도 : 여기

OPTIONS ERRORABEND; 

제가 시도 매크로이다

%macro errchk; 
%if &syserr >0 and &syserr ne 4 %then %abort; 
%mend errchk; 

이것은 오류에 도달 한 후 다음 데이터 처리 단계 유지한다.

프로그램의 나머지 부분을 실행하는 방법을 알 수는 없지만 SAS 서버와의 연결은 끊지 마십시오. 어떤 아이디어?

+0

당신은 원격 프로그램을 실행하는 서버에 연결? –

+0

제가 생각하기에 직장에 연결하고 있습니다. –

+0

어쩌면 도움이 될 것입니다. 오류를 감지 한 후 코드의 끝에 도달 할 수 있도록 일부 goto 스위치를 설정 했습니까? –

답변

1

% goto를 사용해 보셨나요? 중단을 트리거하는 대신 매크로를 종료 점으로 재지 정하고 로그에 내용을 인쇄하여 코드의 어느 부분이 실패했는지 나타낼 수 있습니다.

은 구문의 예는 여기에 제공됩니다 :

http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a000209058.htm

나는 %의 errchk의 문제는 위의 %의 중단 문은 %의 errchk 자체에 적용 아마 생각합니다. 다른 매크로에서 매크로 코드를 래핑하지 않고 매크로 코드의 중간에 % 중단 호출을 배치하면 해당 접근법으로 더 많은 성공을 거둘 수 있습니다. 또는 % errchk가 이미 완료되었거나 % nrstr()에 넣음으로써 % 중단의 실행을 지연시킬 수 있습니다. 이 기능이 작동하는지 알려주세요 - 내일 테스트 할 수 있습니다.