-- ★☆★☆★ basic loop (FOR LOOP)

-- 1.숫자 1부터 20까지 출력하는데 for loop 문으로 구현해서 출력하시오.


SET SERVEROUTPUT ON -- default : serveroutput (dbms_output.put_line) 이 OFF 상태이다.


BEGIN 

  FOR i IN 1..20 LOOP

    DBMS_OUTPUT.PUT_LINE('출력숫자 : ' || i );

  END LOOP;

END;  

/


-- 2. FOR .. LOOP 사용하여 구구단 6단을 출력하시오.


DECLARE 

  V_COUNT NUMBER(10) := 0;

BEGIN 

  FOR i IN 1..9 LOOP

    V_COUNT := 6 * i;

    DBMS_OUTPUT.PUT_LINE ( '6' || ' * ' || i || ' = ' || 6*i); 

  END LOOP;

END;

/


--3. FOR LOOP 을 중첩해서 구구단 2단 ~ 4단까지 출력하시오.


BEGIN   

  FOR i IN 2..4 LOOP

    FOR j IN 1..9 LOOP

    DBMS_OUTPUT.PUT_LINE( i || ' * ' || j  || ' = ' || i*j);  

    END LOOP;

  END LOOP;

END;

/


-- LPAD 함수: 좌측에 자리수 만큼 채워주는 함수

-- 사용법 : LPAD(변수, 길이, 변형자)

-- ex) SELECT LPAD('123',8,0) FROM DUAL


--4. TB_LS_EMP867 테이블을 생성하고 for 문을 이용해서 data를 입력하시오.


CREATE TABLE TB_LS_EMP867

  ( EMP_NO  NUMBER(8), EMP_ID VARCHAR2(12) );

  

DECLARE 

  V_EMP_NO VARCHAR2(8):= 0; 

  V_EMP_ID VARCHAR2(12);


BEGIN 

  FOR i IN 1..20 LOOP

    INSERT INTO TB_LS_EMP867(EMP_NO, EMP_ID)

    VALUES (LPAD((i),8,0),'KOR-'|| LPAD((i),8,0));

  END LOOP;  

END;

/

SELECT * FROM TB_LS_EMP867;


--5. 프로시저를 만들어보자.

CREATE OR REPLACE PROCEDURE PR_ISRT_TAB_EMP

IS

BEGIN

  DECLARE 

    V_EMP_NO VARCHAR2(8):= 0; 

    V_EMP_ID VARCHAR2(12);

  

  BEGIN 

    FOR i IN 1..20 LOOP

      INSERT INTO TB_LS_EMP867(EMP_NO, EMP_ID)

      VALUES (LPAD((i),8,0),'KOR-'|| LPAD((i),8,0));

    END LOOP;  

  END;

END;   

/


EXEC PR_ISRT_TAB_EMP;

--EXECUTE PR_ISRT_TAB_EMP;

--CALL PR_ISRT_TAB_EMP;


SELECT * FROM TB_LS_EMP867;


+ Recent posts