Oracle
[오라클SQL과PLSQL을다루는기술]11. 커서, 레코드, 컬렉션
지금이니!
2020. 7. 18. 15:51
# 커서
: 특정 SQL 문장을 처리한 결과를 담고 있는 영역(PRIVATE SQL이라는 메모리 영역)을 가리키는 일종의 포인터
- 묵시적 커서: PL/SQL 블록에서 실행하는 SQL 문장(DML, SELECT INTO) 실행될 때마다 자동으로 만들어지는 커서
- 명시적 커서: 사용자가 직접 정의해서 사용
묵시적 커서 속성
- SQL%FOUND: 결과 집합의 패치 로우 수가 1개 이상이면 TRUE, 아니면 FALSE
- SQL%NOTFOUND: 로우 수가 0이면 TRUE, 아니면 FALSE
- SQL%ROWCOUNT: 영향 받은 결과 집합의 로우 수 반환, 없으면 0
명시적 커서
1) 커서 선언
CURSOR 커서명[(매개변수1, 매개변수2, ...)]
IS
SELECT 문장;
2) 커서 열기
OPEN 커서명 [(매개변수1, 매개변수2, ...)]
3) 패치 단계에서 커서 사용
LOOP
FETCH 커서명 INTO 변수1, 변수2,...;
EXIT WHEN 커서명%NOTFOUND;
END LOOP;
4) 커서 닫기
CLOSE 커서명;
* 커서변수
* 커서표현식
# 레코드
- 사용자 정의형 레코드
- 테이블형 레코드
- 변수명 테이블명.컬럼명%TYPE
- 레코드변수명 테이블명%ROWTYPE
- 커서형 레코드
- 커서명%ROWTYPE
* 중첩 레코드
# 컬렉션