데이터베이스 커서(Cursor)

이진호·2022년 10월 3일
0

DB

목록 보기
5/6
post-thumbnail

데이터베이스 커서 (Cursor)

데이터베이스 커서는 데이터베이스의 레코드를 순회할 수 있는 메커니즘입니다. 다른 프로그래밍 언어의 반복자(iterator)와 같이 레코드 검색, 추가, 제거와 같은 처리를 순회와 함께할 때 용이하게 만들어줍니다.

주로 데이터베이스 프로그래머가 데이터베이스 시스템 쿼리에서 반환된 전체 결과중 개별 행의 조작을 한 번에 처리하는 데 사용됩니다.

SQL 프로시저(Procedure)에서 커서를 사용하면 결과 집합(데이터 행 집합)을 정의하고 행 단위로 복잡한 논리를 수행할 수 있습니다.

사용법

SAMPLE CURSOR KNOWN AS EE

CREATE OR REPLACE
PROCEDURE EE AS
BEGIN

DECLARE
	v_employeeID EMPLOYEES_DETAILS.EMPLOYEE_ID%TYPE;
	v_FirstName EMPLOYEES_DETAILS.FIRST_NAME%TYPE;
	v_LASTName EMPLOYEES_DETAILS.LAST_NAME%TYPE;
	v_JOB_ID EMPLOYEES_DETAILS.JOB_ID%TYPE:= 'IT_PROG';

// 커서 선언
CURSOR c_EMPLOYEES_DETAILS IS
	SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
	FROM EMPLOYEES_DETAILS
	WHERE JOB_ID ='v_JOB_ID';

// 커서 오픈, 결과 집합 설정
BEGIN
	OPEN c_EMPLOYEES_DETAILS;

	LOOP
        // 한 번에 한 행씩 커서에서 필요에 따라 데이터를 지역 변수로 가져옴.
		FETCH c_EMPLOYEES_DETAILS INTO v_employeeID,v_FirstName,v_LASTName;

		DBMS_OUTPUT.put_line(v_employeeID);
		DBMS_OUTPUT.put_line(v_FirstName);
		DBMS_OUTPUT.put_line(v_LASTName);

		EXIT WHEN c_EMPLOYEES_DETAILS%NOTFOUND;
	END LOOP;
    
    // 커서 종료
	CLOSE c_EMPLOYEES_DETAILS;
END;

END;

출처

0개의 댓글