PL/SQL (11) BASIC LOOP을 활용하여 EMP745 테이블의 레코드를 업데이트하여라.

2019. 4. 4. 14:20 Database/Oracle PLSQL

1. BASIC LOOP을 활용하여 EMP745 테이블의 레코드를 업데이트하여라.

SET SERVEROUTPUT ON;

CREATE OR REPLACE PROCEDURE PR_EMP_TEST5

  (P_DEPT_NO NUMBER)

IS

  -- CURSOR 명 : EMP_CURSOR

  -- EMP_CURSOR 에 조건에 맞는 TB_LS_EMP867 테이블에서 가져온 데이터들을 담아준다.

  CURSOR EMP_CURSOR IS

  SELECT EMP_NO, EMP_NM, EMP_ID, DEPT_NO, SAL

  FROM TB_LS_EMP867

  WHERE DEPT_NO = P_DEPT_NO;

  

  -- 변수를 선언한다.

    V_EMP_NO NUMBER(8) := 0;

    V_EMP_ID VARCHAR2(30);

    V_EMP_NM VARCHAR2(20);

    V_DEPT_NO NUMBER(4) := 0;

    V_SAL NUMBER(10) := 0;


BEGIN

  OPEN EMP_CURSOR;

    LOOP

      FETCH EMP_CURSOR INTO V_EMP_NO, V_EMP_ID, V_EMP_NM, V_DEPT_NO, V_SAL;

      EXIT WHEN EMP_CURSOR%NOTFOUND;

        IF V_SAL > 3000000 THEN 

        -- TABLE의 컬럼에 대해 반드시 명시해주자. 

  INSERT INTO EMP745(EMP_NO, EMP_ID, EMP_NM, DEPT_NO, SAL, INCOME_LVL) 

        VALUES (V_EMP_NO, V_EMP_ID, V_EMP_NM, V_DEPT_NO, V_SAL, '고소득');

        

        ELSE INSERT INTO EMP745(EMP_NO, EMP_ID, EMP_NM, DEPT_NO, SAL, INCOME_LVL)

        VALUES (V_EMP_NO, V_EMP_ID, V_EMP_NM, V_DEPT_NO, V_SAL, '저소득');

        END IF;

     

    END LOOP;

  CLOSE EMP_CURSOR;  

END;

/


SELECT * FROM EMP745;

EXEC PR_EMP_TEST5(82);



출처: https://sourceflower.tistory.com/35?category=608037 [소스플로우]