728x90
반응형
커서 cursor
암시적, 명시적 커서
PL/SQL 을 배우기 위한 목적이 cursor 를 핸들링하기 위함이다
현재 레코드의 위치를 나타낸다
PGA : Process Global Area, Program Global Area, Private Global Area
PGA 영역 세 구분
SQL Work Areas : Sort Area, Hash Area, Bitmap Merge Area
Session Memory
Private SQL Area : Persistent Area, Runtime Area
explicit cursors
- declare
- open
- fetch
- close
DECLARE
CURSOR CUR_EMP IS
SELECT EMPNO_JOB, SAL, COMM FROM EMP WHERE DEPTNO = 10;
V_ENAME. VARCHAR2(10);
V_JOB. VARCHAR2(9);
V_SAL. NUMBER(7, 2);
V_COMM. NUMBER(7, 2);
BEGIN
OPEN CUR_EMP;
LOOP
FETCH CUR_EMP INTO V_ENAME, V_JOB, V_SAL, V_COMM;
EXIT WHEN CUR_EMP%NOTFOUNT;
-- 암시적 커서 시작
INSERT INTO BONUS(ENAME, JOB, SAL, COMM)
VALUES(V_ENAME, V_JOB, V_SAL, V_COMM);
-- 끝
END LOOP;
DBMS_OUTPUT.PUT_LINE('TOTAL' || TO_CHAR(CUR_EMP%ROWCOUNT) || 'rows processed');
CLOSE CUR_EMP;
COMMIT;
END;
/
implicit cursors
begin 과 end 즉, 실행부에서 실행한 모든 SQL
SQL 실행
- parsing
- syntax check
- semantic check
- shared sql check
- execution plan 수립 : cpu intensive job
- execute
- fetch
- select 구문만 fetch 단계 수행
728x90
반응형
'데이터베이스' 카테고리의 다른 글
| [데이터베이스] DBMS CONNECTION 시각화 (0) | 2022.08.13 |
|---|---|
| [데이터베이스] 모듈 Module (0) | 2022.08.13 |
| [데이터베이스] 분산 트랜잭션 (0) | 2022.08.13 |
| [데이터베이스] 데이터베이스란? (0) | 2022.08.13 |
| [데이터베이스] PL/SQL (0) | 2022.08.13 |