SQL

오라클 LOOP사용, 테이블에 테스트 데이터 넣기

dev.mk 2019. 4. 12. 17:01
반응형

1. 테이블에 테스트 데이터 500건 인서트 하기

DECLARE
    v_cnt NUMBER := 0; --초기값 
BEGIN
    LOOP -- 반복문 선언
    EXIT WHEN v_cnt > 500; -- 조건v_cnt가 501되면 loop종료, 이 조건은 인서트문 아래에 선언해도 상관없다.
    v_cnt := v_cnt+1; -- 증가치 1씩 증가,  이 조건은 인서트문 아래에 선언해도 상관없다.
    
    INSERT INTO REST_BBS(
        REST_BBS_IDX
        , TITLE
        , CONTENTS
        , CRT_DTM
        , UPD_DTM
        , MEMBER_IDX
    )VALUES(
        REST_SEQ.nextval
        , '제목'||to_char(v_cnt)
        , '내용'||to_char(v_cnt)  
        , sysdate
        , sysdate
        , '1004'
    );
    END LOOP;
END;  

----------------------------------------

2. IF와 LOOP 중복사용(짝수만 인서트하기)

DECLARE
    V_CNT NUMBER(2) := 0;    
BEGIN
    LOOP
    V_CNT := V_CNT + 1;        --초기값
    EXIT WHEN V_CNT > 10;       --조건
         
    IF MOD(V_CNT,2) = 0    --2로 나누어 나머지가 0이면 인서트
    THEN
      INSERT INTO REST_BBS(REST_BBS_IDX)
      VALUES(V_CNT, 'NO' || V_CNT);
    END IF;
    END LOOP;
END;

반응형