PL/SQL CURSOR

2024. 1. 21. 22:01DBMS/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