코딩공부/DataBase

oracle insert for문 (WHILE LOOP를 이용한 100만건 데이터 insert 하기)

integerJI 2020. 8. 6. 22:53

http://www.gurubee.net/lecture/1057

LOOP문, WHILE문

LOOP문 문법 - EXIT 문이 사용되었을 경우, 무조건 LOOP문을 빠져나간다. - EXITH WHEN 이 사용될 경우 WHEN 절에 LOOP를 빠져..

www.gurubee.net


목적 : 대량데이터를 SELECT 할때 시간을 단축하기 위해 샘플 데이터를 넣습니다.

declare v_cnt number := 1; -- 시작 begin DBMS_OUTPUT.enable;WHILE v_cnt < 1000000 LOOP -- 1000000 미만까지 LOOP insert into -- INSERT문 TEST_TABLE ( TEST_ID, TEST_TITLE, TEST_DATE ) values ( v_cnt, -- PK값 증가 'test', sysdate ); v_cnt := v_cnt + 1;EXIT -- 값 증가 when v_cnt > 1000000; -- 1000000 미만까지 end LOOP; DBMS_OUTPUT.PUT_LINE('데이터 입력 완료'); DBMS_OUTPUT.PUT_LINE(v_cnt || '개의 데이터가 입력되었습니다'); end;


100만건이다 보니 LOOP문을 돌리고 1분정도 걸립니다.

중간에 SELECT나 UPDATE를 하면 DB ROOK이 걸릴 수 있으니 주의하세요!!

저는 70초가 걸렸습니다.

'코딩공부 > DataBase' 카테고리의 다른 글

ORA-00926: 누락된 VALUES 키워드  (0) 2021.01.13
oracle 시퀀스(sequence) 사용  (0) 2020.12.07
oracle 테이블 백업 / 삭제 / 복사  (0) 2020.08.18
oracle 데이터 합치기  (0) 2020.07.18
자주쓰는 오라클 함수  (0) 2020.07.16