본문 바로가기
Data Engineering/SQL

[Oracle] PL/SQL 프로시저 FOR LOOP (CURSOR, SELECT문 이용)

by jangThang 2023. 10. 13.
반응형

 CURSOR와 SELECT문을 이용한 FOR LOOP 구문에 대해 알아봅니다.

 

[ Contents ]

     

     

    1. CURSOR를 이용한 FOR LOOP

    DECLARE
    
    -- 커서 정의
    CURSOR cur_emp
    IS
    SELECT emp_id, emp_nm
    FROM emp
    WHERE dpmt_cd = '20231013';
    
    BEGIN
    
    -- 커서를 통한 FOR LOOP
    FOR emp IN cur_emp
      LOOP
      	-- 실행문
        DBMS_OUTPUT.PUT_LINE(emp.emp_id || ' ' || emp.emp_nm);
      END LOOP;
      
    END;

     커서를 이용할 때에는 미리 정의한 후에, FOR문에서 불러와서 사용합니다.

     커서에 담은 내용이 여러 번 사용될 때에는 위와 같이 하는 게 좋습니다. 또한 커서 정의에 필요한 SELECT문이 너무 길 때에도, 가독성을 위해 미리 위에서 정의하곤 합니다.

     

     

    2. SELECT문을 이용한 FOR LOOP

    BEGIN
    
    -- SELECT문을 통한 FOR LOOP
    FOR emp IN (
    	SELECT emp_id, emp_nm
    	FROM emp
    	WHERE dpmt_cd = '20231013';
    ) LOOP
      	-- 실행문
        DBMS_OUTPUT.PUT_LINE(emp.emp_id || ' ' || emp.emp_nm);
      END LOOP;
    
    END;

     커서로 정의하지 않고, 바로 SELECT문으로 조회한 데이터를 순회하는 LOOP입니다.

     간단한 LOOP를 구현할 때 좋은 구문입니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글