커서 속성(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에서는 특정 커서 이벤트와 연관된 속성 값을 요약합니다.

표 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 정의되지 않음 정의되지 않음 커서가 열리지 않음 예외