본문 바로가기
Oracle DB

커서 ( Cursor)

by jisung-kim 2023. 8. 15.

 

커서 ( Cursor )  커서 뭐가 될래...?

- 일반 프로그래밍 언어의 파일 처리 방법과 유사

- 행의 집합을 다룰 수 있는 편리한 기능 제공

- 테이블에서 여러 개의 행을 질의 후, 질의 결과인 행 집합을 한 행씩 처리

- 프로시저 내부에서 커서 사용

 


커서 처리 순서

 

1.커서 선언

2.커서 열기

3.커서 데이터 가져오기 FETCH 

4.데이터처리

5.커서 닫기

 

3 ~ 4단계에서 LOOP문으로 가져올 행이 없을때까지 반복.


CREATE OR REPLACE PROCEDURE cursor_salary AS
	sal NUMBER := 0;
    cnt NUMBER := 0;
    total NUMBER := 0;
    CURSOR emp_cursor IS SELECT salary FROM employees;
BEGIN
	OPEN emp_cursor;
    LOOP
    	FETCH emp_cursor INTO sal;
        EXIT WHEN emp_cursor%NOTFOUND; // emp_cursor가 없을경우 종료
        total := total + sal;
        cnt := cnt + 1;
    END LOOP;
	CLOSE emp_cursor;
    DBMS_OUTPUT.PUT_LINE('평균 SALARY:' || (total / cnt));
END;

'Oracle DB' 카테고리의 다른 글

인덱스 Index  (0) 2023.08.19
함수 Function (2)  (0) 2023.08.15
함수 Function (1)  (0) 2023.08.15
프로시저 Procedure 정의 및 변수종류 (2)  (0) 2023.08.14
프로시저 Procedure 정의 및 변수종류 (1)  (0) 2023.08.12