과거 게시글
ORACLE CURSOR 활용 예제 ( 오라클 반복문 )
악역영애
2021. 4. 1. 13:15
반응형
문제상황)
부득이 SELECT, INSERT, UPDATE를 전부해야될 때 cursor와 반복을 활용하였다.
DECLARE
V_ID NUMBER; --id 담을 변수
V_GROUP_ID NUMBER; --group_id 담을 변수
CURSOR V_CURSOR --CURSOR 정의
IS
SELECT *
FROM TABLE_1
WHERE ID=XXX;
BEGIN
FOR v_list IN V_CURSOR LOOP --반복문 시작, 이때 v_list 는 별도 선언없이 바로 사용.
--1. SEQ SELECT --특정 key 로 select 한 seq를 V_ID, V_GROUP_ID 에 삽입
SELECT seq INTO V_ID FROM TABLE_2 WHERE key='XXX';
SELECT seq INTO V_GROUP_ID FROM TABLE_3 WHERE key ='XXX';
--2. SEQ INSERT -- 위에서 정보가 삽입된 변수를 활용하여 insert
INSERT INTO TABLE4 (ID, GROUP_ID)
VALUES (V_ID, V_GROUP_ID);
--3. OP_POINT UPDATE
UPDATE TABLE_5
SET seq = XX
WHERE ID = v_list.ID --CURSOR로 가져온 행이 들어가있는 v_list를 활용함
AND TYPE = v_list.TYPE --v_list.컬럼명 으로 호출가능
AND NAME = v_list.NAME;
END LOOP;
COMMIT;
END;
간단하게 FOR IN 형식의 반복문을 사용하였다.
DECLARE 에 CURSOR를 선언해주고 BEGIN 안쪽에서 FOR-IN 돌려서 활용하면 끝.
728x90