2024. 1. 21. 22:01ㆍDBMS/ORACLE Admin
오라클에서 SQL문을 실행할 때마다 PARSE를 위한 메모리 공간 사용한다. 사용자가 요청하는 데이터를 데이터베이스 버퍼 캐시에서 커서로 복사해 온 후 커서에서 원하는 데이터를 FETCH 하여 후속 작업을 한다. 이 메모리 공간을 PRIVATE SQL AREA 라고 부른다.
IMPLICIT CURSOR
묵시적 커서는 필요할 경우 오라클이 자동적으로 선언하여 사용한 후 자동으로 CLEAN UP 한다. 블록이 실행될 때 내부에 포함된 SQL 대해 커서가 자동적으로 생성된다.
SQL%ROWCOUNT : 커서 실행 행의 개수 카운트
SQL%FOUND : 커서 안에 수행 되야 할 데이터가 있을 경우 TRUE 그렇지 않을 경우 FALSE
SQL%NOTFOUND : 커서 안 수행 데이터 없을 경우 TRUE 반환이 있을 경우 FALSE
SQL%ISOPEN : 묵시적 커서가 메모리에 OPEN일 경우 TRUE 그렇지 않을 경우 FALSE
EXPLICIT CURSOR
명시적 커서는 사용자가 정의한 커서를 선언하여 사용하고 커서의 사용이 끝난 후 CLEAN UP 작업을 수행해야 한다.
여러 건을 검색하는 문장에서 묵시적 커서를 사용한 오라클은 TOO_MANY_ROWS 예외를 발생시킨다.
CURSORNAME%ROWCOUNT
CURSORNAME%FOUND
CURSORNAME%NOTFOUND
CURSORNAME%ISOPEN
DELACRE 에서 선언되어야 한다. 해당 커서를 사용하겠다고 PL SQL 에 알려주는 역할만 할 뿐 실제 메모리 할당이 이루어지는 것은 아니다.
PLSQL 에서 2건 이상 데이터를 가져올 때는 반드시 명시적 커서를 사용해야 한다.
'DBMS > ORACLE Admin' 카테고리의 다른 글
tablespace checkpoint option (0) | 2024.02.02 |
---|---|
segment_name 쿼리 (0) | 2024.02.02 |
PL/SQL 에서 변수의 의미와 사용법 (0) | 2024.01.21 |
schema (0) | 2024.01.11 |
ORACLE 설치 후 계정 생성 오류 해결 (0) | 2023.12.30 |