여러개의 행을 한 번에 가져오는 CURSOR LOOP

2024. 4. 13. 20:31DBMS/PLSQL

반응형

 

--부서번호를 입력 후사원 이름 월급 부서 번호 출력

SET SERVEROUTPUT ON
DECLARE
    V_ENAME EMP.ENAME%TYPE;
    V_SAL EMP.SAL%TYPE;
    V_DEPTNO EMP.DEPTNO%TYPE;
    
    CURSOR EMP_CURSOR IS
        SELECT ENAME, SAL, DEPTNO
        FROM EMP
        WHERE DEPTNO= &P_DEPTNO;
    
    
BEGIN
    OPEN EMP_CURSOR;
        LOOP
            FETCH EMP_CURSOR INTO V_ENAME, V_SAL, V_DEPTNO;
            EXIT WHEN EMP_CURSOR%NOTFOUND;
            DBMS_OUTPUT.PUT_LINE(V_ENAME||' '||V_SAL||' '||V_DEPTNO);
        END LOOP;
    CLOSE EMP_CURSOR;
END;

 

 


CURSOR EMP_CURSOR IS  입력된 부서 번호에 해당하는 사원 정보를 가져오는 커서를 정의한다.

OPEN EMP_CURSOR;: EMP_CURSOR 커서를 연다.

LOOP : 무한 루프를 시작한다.

FETCH EMP_CURSOR INTO V_ENAME, V_SAL, V_DEPTNO;: 커서로부터 데이터를 가져와서 변수에 할당한다.

EXIT WHEN EMP_CURSOR%NOTFOUND : 커서에서 더 이상 데이터를 가져올 수 없으면 루프를 종료한다.

END LOOP;`: 루프의 끝을 나타낸다.

CLOSE EMP_CURSOR;`: 커서를 닫음

15. `END;`: PL/SQL 코드의 끝을 나타낸다.

 
 
반응형

'DBMS > PLSQL' 카테고리의 다른 글

fetch row 가 2건 이상일 때 오류  (0) 2024.05.24
PL/SQL 기본 구조  (0) 2024.04.18
예외 처리 PRAGMA  (0) 2024.04.14
삽입 정렬 insertion Sort  (0) 2024.03.18
EXTEND  (0) 2024.02.04