커서 속성(PL/SQL)
각 커서에는 애플리케이션 프로그램에서 커서의 상태를 테스트할 수 있도록 하는 속성 세트가 있습니다.
이러한 속성으로는 %ISOPEN, %FOUND, %NOTFOUND 및 %ROWCOUNT가 있습니다.
- %ISOPEN
- 이 속성은 커서가 열린 상태인지 여부를 판별하는 데 사용됩니다. 커서가 함수 또는 프로시저에 매개변수로 전달된 경우 커서를 열기 전에 커서가 이미 열려 있는지 여부를 알면 유용합니다.
- %FOUND
- 이 속성은 커서가 FETCH문 실행 후에 행을 포함하는지 여부를 판별하는 데 사용됩니다. FETCH문 실행에
성공하면 %FOUND 속성의 값은 true입니다. FETCH문 실행에
실패하면 %FOUND 속성의 값은 false입니다.
다음 경우에는 결과를 알 수 없습니다.
- cursor-variable-name 값이 널(NULL)인 경우
- cursor-variable-name의 기본 커서가 열리지 않은 경우
- 기본 커서에 대해 첫 번째 FETCH문이 실행되기 전에 %FOUND 속성이 평가되는 경우
- FETCH문 실행에서 오류가 리턴되는 경우
%FOUND 속성은 페치할 행이 더 이상 남아 있지 않는 경우에 리턴되는 오류가 있는지 확인하는 조건 핸들러의 사용에 대한 효과적인 대안을 제공합니다.
- %NOTFOUND
- 이 속성은 논리적으로 %FOUND 속성과 반대됩니다.
- %ROWCOUNT
- 이 속성은 커서를 연 이후 페치된 행 수를 판별하는 데 사용됩니다.
표 1에서는 특정 커서 이벤트와 연관된 속성 값을 요약합니다.
| 커서 속성 | %ISOPEN | %FOUND | %NOTFOUND | %ROWCOUNT |
|---|---|---|---|---|
| OPEN 전 | False | 정의되지 않음 | 정의되지 않음 | 커서가 열리지 않음예외 |
| OPEN 후 첫 번째 FETCH 전 | True | 정의되지 않음 | 정의되지 않음 | 0 |
| 첫 번째 FETCH 성공 후 | True | True | False | 1 |
| n번째 FETCH 성공 후(마지막 행) | True | True | False | n |
| n+1번째 FETCH 성공 후(마지막 행 후) | True | False | True | n |
| CLOSE 후 | False | 정의되지 않음 | 정의되지 않음 | 커서가 열리지 않음예외 |