티스토리 뷰
반응형
DECLARE
-- 1. 커서 정의
CURSOR c_target_data IS
SELECT * FROM employees;
-- 2. 커서 행 구조에 맞는 컬렉션 타입 정의
TYPE t_emp_list IS TABLE OF c_target_data%ROWTYPE;
v_emp_list t_emp_list;
-- 한 번에 처리할 건수 지정
v_limit_size CONSTANT NUMBER := 5000;
BEGIN
OPEN c_target_data;
LOOP
-- 3. LIMIT 크기만큼 나누어서 SELECT
FETCH c_target_data
BULK COLLECT INTO v_emp_list
LIMIT v_limit_size;
-- 컬렉션에 데이터가 있다면 INSERT 수행
IF v_emp_list.COUNT > 0 THEN
-- 4. FORALL로 대량 INSERT
FORALL i IN 1 .. v_emp_list.COUNT
INSERT INTO employees_history
VALUES v_emp_list(i);
-- 주기적인 COMMIT으로 롤백 세그먼트 부하 감소
COMMIT;
END IF;
-- 5. 커서에 더 이상 가져올 데이터가 없으면 루프 종료
EXIT WHEN c_target_data%NOTFOUND;
END LOOP;
CLOSE c_target_data;
DBMS_OUTPUT.PUT_LINE('대용량 데이터 이관 완료');
EXCEPTION
WHEN OTHERS THEN
IF c_target_data%ISOPEN THEN
CLOSE c_target_data;
END IF;
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('오류 발생: ' || SQLERRM);
END;
/반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Life Chair
- 톡토기
- 로니카 BCS
- 유가바이트디비
- 솔리드 쿨론
- Sybase IQ
- 루미큐브 종류
- 별이 빚나는 밤
- 오미크론
- 남설 팔찌
- 브리다 정수기
- 빈센트 반 고흐
- 배당급
- JMW 헤어드라이기기
- Pixel Pals
- 파나소닉 비데 DL-EH10KWS
- 증권정보포털
- 고체 향수
- 코라나 19
- node.js
- 화분벌레
- 르세라핌
- 별잉 빛나는 밤
- 매직 트랙패드2
- yugabyteDB
- 홈 오피스
- VARIDESK
- weka
- GKRS
- 카카오 에드
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
글 보관함
