반응형
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를 구현할 때 좋은 구문입니다.
반응형
'Data Engineering > SQL' 카테고리의 다른 글
[Oracle] 손쉽게 데이터값을 수정하는 명령어 EDIT (Toad for Oracle) (0) | 2023.12.05 |
---|---|
[ORACLE] 계층형 쿼리를 활용한 날짜 생성 (CONNECT BY LEVEL 이용) (1) | 2023.12.05 |
[Oracle] COALESCE: Null이 아닌 가장 왼쪽 값을 찾는 함수 (0) | 2023.04.27 |
[ORACLE] 기존 튜플을 변형해서 테이블에 삽입하는 방법 (여러 건의 튜플 삽입) (0) | 2023.04.25 |
[Oracle] 특정 월 평일/주말만 조회하는 쿼리문 작성하기 (계층적 쿼리) (0) | 2023.03.28 |
댓글