본문 바로가기

프로그램

[ORACLE]커서에 따른 속성값들

반응형

ORACLE 에서 명시적으로 커서를 사용시(FETCH이용) 

또는 SLEECT, UPDATE, INSERT, DELETE 시에도 내부적으로는 묵시적 커서를 생성하는데

이 경우 사용할 수 있는 ATTRIBUTE 들이 존재한다.


- 명시적 커서 사용시(커서 이름을 CR01로 함)

CR01%FOUND : 최근 FETCH 된 값이 존재하면 TRUE

CR01%ISOPEN : 명시적 CURSOR일 경우 CURSOR의 OPEN상태이면 TRUE, 아니면 FALSE


IF CR01%ISOPEN THEN

--CONTINUE LOGIC

ELSE 

CR01.CLOSE

END IF;


CR01%NOTFOUND : FOUND의 NOT 처리한 것과 같음

CR01%ROWCOUNT : CURSOR로 FETCH된 ROW수를 반환한다. 1 ROW FETCH 될떄마다 1씩 증가한다.



- 암묵적 커서에서 사용하는 ATTRIBUTE

SQL%FOUND : 최근 쿼리에서 1개 이상 SELECT 되었을 시 TRUE

SQL%NOTFOUND : 최근 쿼리에서 0개 일 경우 TRUE

SQL%ISOPEN : 항상 FALSE, 암묵적 커서일 경우 자동으로 닫힌다.

SQL%ROWCOUNT : 쿼리를 통해 조회된 ROW 갯수, SELECT일 경우 1개 이상이면 TOO_MANY_ROWS 발생



참고 URL : 

http://koreantramp.tistory.com/228

http://www.toadworld.com/platforms/oracle/w/wiki/1852.cursor-attribute-rowcount.aspx