포스팅 목차
o ABORT구문
1. 목 적
ABORT 구문은 현재 실행 중인 데이터 스텝, SAS 작업 또는 SAS 세션의 실행을 종료시킨다. 조건문과 함께 사용하여서 특정 조건에서 프로그램을 종료하기 위하여 사용되며, 운영환경에 따라서 서로 다른 결과를 생성한다.
2. 문 법
ABORT | RETURN | > ; |
운영환경에 따라서 다른 결과를 생성하지만 여기서는 윈도우 환경에 대하여 자세히 설명하도록 하겠다. 배치 모드와 비대화식 모드에 대하여는 도움말을 참조하라.
1) 인수를 사용하지 않는 경우
현재 실행 중인 데이터 스텝 처리를 중지하고, ABORT 구문이 실행되기 전에 처리된 관측치로 구성된 데이터 세트를 생성한 후에 ABORT 구문에 의하여 DATA 스텝을 종료하였다는 내용을 로그에 출력한다. 출력 후 ABORT 구문 이후의 DATA 스텝 또는 PROC 스텝에 대한 처리를 계속 실행한다.
아래와 같이 운영 방법에 따라 서로 다른 결과를 생성한다.
- 배치(Batch) 모드와 비대화식 모드
- 현재 데이터 스텝 처리를 중지하고, SAS 로그에 에러 메시지를 출력한다. SAS에서 ABORT 구문이 실행되는 시점에 따라서, 데이터 세트에 불완전한 관측치가 포함되거나 관측치가 하나도 포함되지 않을 수 있다.
- OBS= 시스템 옵션을 0으로 설정한다.
- 나머지 SAS 작업 중에서 Macro 문장의 실행, 시스템 옵션 문장의 실행, 프로그램 문장의 문법 체크 등을 포함한 일부 프로그램 처리를 계속 실행한다.
- 이후의 DATA와 PROC 스텝은 관측치가 포함되지 않는 출력 데이터 세트를 생성한다.
- 윈도우 환경
- 현재 실행중인 데이터 스텝 처리를 중지한다.
- ABORT 구문이 실행되기 전에 처리된 관측치로 구성된 데이터 세트를 생성한다.
- ABORT 구문이 DATA 스텝을 종료하였다는 내용을 로그에 출력한다.
- ABORT 구문 이후의 DATA 스텝 또는 PROC 스텝에 대한 처리를 계속 실행한다.
- 대화식 라인 모드
- 현재 데이터 스텝 처리를 중지하고, 이후의 데이터 스텝 또는 프로시져 작업은 정상적으로 처리한다.
2) 인수를 사용하는 경우
(1) ABEND :
현재 실행 중인 SAS 작업이나 세션을 비정상적으로 종료시키고 통제 권한을 운영환경에 반환한다. 아래와 같이 운영 방법에 따라 서로 다른 결과를 생성한다.
- 배치 모드와 비대화식 모드
- ABORT 구문에서 ABEND 옵션이 실행되면 실행중이던 처리를 바로 중지시킨다.
- 프로그램 실행이 ABORT 구문에서 ABEND 옵션 때문에 종료되었다는 내용을 SAS 로그에 에러 메시지로 출력한다.
- ABORT 구문 이후의 SAS 문장이나 구문(Syntax)검사를 실행하지 않는다.
- 통제 권한을 운영 환경에 반환하고, ABORT 구문 이후의 처리 방법은 SAS가 설치되어 있는 운영 환경에서 비정상적으로 종료된 작업을 처리하는 방법에 따라 달라진다.
- 윈도우 환경과 대화식 라인 모드
- 윈도우 환경과 대화식 라인 모드는 즉시 실행중인 처리를 바로 중지시키고, 통제 권한을 운영환경에 반환한다.
(2) CANCEL :
제출된 문장의 실행을 취소하고, 현재 실행된 프로그램을 초기화 작업을 수행하고 오류 메시지를 로그에 작성한다. 그 이후 실행되는 프로그램에는 영향을 주지 않는다.
- 배치 모드와 비대화식 모드
- 전체 SAS 프로그램과 SAS 시스템을 종료한다.
- 에러 메시지가 SAS 로그에 출력된다.
- 윈도우 환경과 대화식 라인 모드
- 단지 현재 실행된 프로그램을 초기화한다.
- 그 이후 실행되는 프로그램에는 영향을 주지 않는다.
- 에러 메시지를 SAS 로그에 작성한다.
- FILE
: 실행 프로그램에서 Autoexec 파일이나 %INCLUDE 구문에서 호출하는 호출 대상 파일 내에 CANCEL 인수와 “FILE” 옵션을 함께 사용하면, FILE 옵션은 ABORT 구문으로 호출된 Autoexecs 파일 또는 %INCLUDE 파일의 실행을 ABORT 구문으로 종료시키고, Autoexec 또는 %INCLUDE 구문 이후에 작성된 다른 프로그램을 계속 실행하도록 한다.
경고 : | %INCLUDE 구문이 호출하는 대상 파일에서 ABORT CANCEL FILE 옵션이 실행된 경우에는 현재 열려져 있는 모든 Macro 파일을 닫고, 코드의 바로 다음 소스 라인에서 프로그램을 다시 실행한다. |
제한사항 : | CANCEL 인수는 SAS/SHARE, SAS/CONNECT 또는 SAS/AF에서는 실행되지 않을 수 있다. |
(3) RETURN :
현재 실행 중인 SAS 작업이나 세션을 정상적으로 종료시키고, 통제 권한을 운영 환경에 반환한다.
- 배치 모드와 비대화식 모드
- 바로 프로그램 실행을 중지시킨다.
- 프로그램 실행이 ABORT 구문의 RETURN 옵션에 의하여 종료되었다는 사실을 에러 메시지로 SAS 로그에 출력한다.
- 그 이후의 SAS 문장 또는 문법 검사를 실행하지 않는다.
- 에러를 표시하는 조건 코드과 함께 운영 환경에 통제 권한을 반환한다.
- 윈도우 환경
- 운영환경과 대화식 라인 모드의 처리를 멈추도록 하고, 운영 환경에 통제 권한을 반환한다.
(4) n :
조건 코드를 표시할 수 있는 정수 값을 지정한다.
- CANCEL 인수와 함께 사용된 경우에 이 값은 SYSINFO 자동 MACRO 변수로 반환한다.
- CANCEL 인수와 함께 사용되지 않은 경우에 SAS는 실행이 멈췄을 때 이 값을 운영 환경에 반환한다. n 값의 범위는 운영 환경에 따라 달라진다.
(5) NOLIST :
SAS 로그에 모든 변수가 출력되지 않도록 제어한다.
필요사항 : | NOLIST는 ABORT 구문의 옵션 중에서 마지막에 위치해야 한다. |
3. 범 주
SAS 기본 구문 (실행 구문)
4. 상세 설명
ABORT 구문은 SAS의 현재 실행중 인 데이터 스텝 처리를 중지 시킨다. 중지 이후에 실행되는 결과는 아래의 조건에 따라 차이가 발생한다.
- SAS 문장을 발행하기 위해 사용하는 방법
- ABORT와 함께 사용하는 인수
- 운영 환경
ABORT 구문은 일반적으로 에러 조건이 발생하는 경우에 실행을 멈추도록 지시하는 IF-THEN 구문 또는 SELECT 구문에서 사용된다.
참고사항 : | 만약 시스템 옵션 ERRORABEND 을 적용 하였다면, ABORT 구문에 의하여 생성된 반환 코드는 무시된다. |
참고사항 : | DATA 스텝에서 ABORT 구문이 실행될 때에, SAS는 입력과 출력 데이터 세트 이름을 동일하게 부여하여 출력 데이터 세트를 대체하는 작업을 수행하지 못한다. |
운영 환경 정보 : ABEND 와 RETURN 옵션의 차이점은, ABEND 옵션 이후에 처리되는 작업은 운영 환경이 비정상적으로 종료된 작업을 처리하는 방법에 따라 달라진다. 그러나, RETURN 옵션은 단순하게 에러를 알려주는 조건 코드를 반환한다.
5. 비 교
- SAS 윈도우 환경 또는 대화식 라인 모드를 사용하는 경우에 ABORT 구문과 STOP 구문은 모두 프로세스 처리를 중지한다. 그러나, ABORT 구문은 자동 변수 _ERROR_의 값을 1로 설정하지만, STOP 구문은 _ERROR_의 값을 별도로 변경하지 않는다.
- Batch 모드 또는 비대화식 모드에서 ABORT와 STOP 구문은 서로 다른 작업을 수행한다. 양쪽 모두 프로세스 처리를 중지하지만, ABORT 구문은 자동 변수 _ERROR_ 의 값을 1로 설정하지만, STOP 구문은 현재 데이터 스텝을 멈추고, 다음 스텝을 계속해서 처리한다.
6. 관련 구문
구문명 | 구문내용 |
ABORT 구문 | 현재 실행 중인 데이터 스텝, SAS 작업 또는 SAS 세션의 실행을 종료시킨다. |
STOP 구문 | 프로그램에서 STOP 구문이 실행되면 현재 처리 중인 데이터 스텝의 실행을 중지시킨다. |
[SAS Statement] SAS 데이터 스텝 구문 사전 목록]
7. 예 제
다음 예제는 데이터가 division-by-zero(분모가 0인 경우) 조건이 발생하는 경우에 SAS의 실행을 멈추기 위하여 IF-THEN 조건문에서 ABORT 구문을 사용한다.
SAS Statements |
if volume=0 then abort 255;
density=mass/volume;
n값은 ABORT 구문이 실행되는 경우에 운영환경에 조건 코드 255를 전달한다.
[SAS Statement] SAS 데이터 스텝 구문 사전 목록] |
SAS 함수(SAS Function) 리스트 링크 |
'SAS > SAS 구문사전' 카테고리의 다른 글
[SAS Statement] CARDS 구문 (0) | 2022.01.25 |
---|---|
[SAS Statement] CALL 구문 (0) | 2022.01.25 |
【SAS Statement】 BY 구문 (0) | 2022.01.25 |
【SAS Statement】 ATTRIB 구문 (0) | 2022.01.25 |
【SAS Statement】 ARRAY 구문 (0) | 2022.01.25 |
댓글