SET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE PR_EMP_TEST9(P_DEPT_NO NUMBER)
-- CURSOR 명 : EMP_CURSOR
-- EMP_CURSOR 에 조건에 맞는 TB_LS_EMP867 테이블에서 가져온 데이터들을 담아준다.
IS
CURSOR EMP_CURSOR IS
SELECT EMP_NO, EMP_ID, EMP_NM, DEPT_NO, SAL
FROM TB_LS_EMP867
WHERE DEPT_NO = P_DEPT_NO;
BEGIN
-- CURSOR OPEN 사용 X, FETCH 사용 X, EMP_RECORD 임의부여
FOR EMP_RECORD IN EMP_CURSOR LOOP
DBMS_OUTPUT.PUT_LINE(EMP_RECORD.EMP_NM || '님의 레코드는 다음과 같습니다.
: ' || EMP_RECORD.EMP_NO || ' | ' || EMP_RECORD.EMP_ID || ' | ' || EMP_RECORD.DEPT_NO || ' | ' || EMP_RECORD.SAL );
IF EMP_RECORD.SAL > 3000000
THEN INSERT INTO EMP745(EMP_NO, EMP_ID, EMP_NM, DEPT_NO, SAL, INCOME_LVL)
-- TABLE의 컬럼에 대해 반드시 명시해주자.
VALUES (EMP_RECORD.EMP_NO, EMP_RECORD.EMP_NM, EMP_RECORD.EMP_ID,
EMP_RECORD.DEPT_NO, EMP_RECORD.SAL, '고소득');
ELSE
INSERT INTO EMP745(EMP_NO, EMP_ID, EMP_NM, DEPT_NO, SAL, INCOME_LVL)
-- TABLE의 컬럼에 대해 반드시 명시해주자.
VALUES (EMP_RECORD.EMP_NO, EMP_RECORD.EMP_NM, EMP_RECORD.EMP_ID,
EMP_RECORD.DEPT_NO, EMP_RECORD.SAL, '저소득');
END IF;
END LOOP;
END;
/
EXEC PR_EMP_TEST9(82);
SELECT * FROM EMP745;
DELETE FROM EMP745;
'PL-SQL' 카테고리의 다른 글
PL/SQL (15) PL/SQL 정리 및 예제 (0) | 2017.03.27 |
---|---|
PL/SQL (14) PL/SQL의 종류 (0) | 2017.03.27 |
PL/SQL (12) WHILE LOOP을 활용하여 EMP745 테이블의 레코드를 업데이트하여라. (0) | 2017.03.27 |
PL/SQL (11) BASIC LOOP을 활용하여 EMP745 테이블의 레코드를 업데이트하여라. (0) | 2017.03.24 |
PL/SQL (10) FOR .. LOOP을 활용한 프로시저 예제 (0) | 2017.03.24 |