PL/SQL (3) 프로시저를 사용하여 다른테이블로 INSERT 예제
1-1. 사원번호를 물어보게하고 사원번호를 입력하면 해당 사원의 모든 컬럼의 정보가 EMP745 테이블에 입력되게 하는 PL/SQL을 작성하시
오.
SELECT * FROM EMP745;
-----------------------------------------------------------------------------------------------------
SET SERVEROUTPUT ON;
ACCEPT P_EMP_NO PROMPT 'EMP745테이블로 복사할 사원번호를 입력하세요'
DECLARE
V_DEPT_NO NUMBER(4) := 0;
V_EMP_NO NUMBER(8) := &P_EMP_NO;
V_EMP_NM VARCHAR2(20);
V_EMP_ID VARCHAR2(30);
V_SAL NUMBER(10) :=0;
BEGIN
SELECT DEPT_NO, EMP_NO, EMP_NM, EMP_ID, SAL
INTO V_DEPT_NO, V_EMP_NO, V_EMP_NM, V_EMP_ID, V_SAL
FROM TB_LS_EMP867
WHERE EMP_NO = V_EMP_NO;
DBMS_OUTPUT.PUT_LINE(V_EMP_NM || '님의 레코드는 다음과 같습니다. : ' || V_DEPT_NO || ' | ' || V_EMP_NM || ' | ' || V_EMP_ID || ' | ' ||
V_SAL);
-- EMP745테이블에 DB MIGRATION
INSERT INTO EMP745 (DEPT_NO, EMP_NO, EMP_NM, EMP_ID, SAL )
VALUES (V_DEPT_NO, V_EMP_NO, V_EMP_NM, V_EMP_ID, V_SAL);
END;
/
-- EMP745 테이블 확인
SELECT * FROM EMP745;
1-2. 사원번호를 입력하면 해당 사원의 모든 컬럼의 정보가 EMP745 테이블에 입력되게 하는 프로시저를 생성하라.
-- EXEC PR_MIG_EMP745(1)
-- LPAD 함수를 사용하라. LPAD(변수,8,0)
CREATE OR REPLACE PROCEDURE PR_MIG_EMP745
(P_EMP_NO NUMBER)
IS
V_DEPT_NO NUMBER(4) := 0;
V_EMP_NO NUMBER(8) := LPAD(P_EMP_NO,8,0); --LPAD 함수를 사용
V_EMP_NM VARCHAR2(20);
V_EMP_ID VARCHAR2(30);
V_SAL NUMBER(10) :=0;
BEGIN
SELECT DEPT_NO, EMP_NO, EMP_NM, EMP_ID, SAL
INTO V_DEPT_NO, V_EMP_NO, V_EMP_NM, V_EMP_ID, V_SAL
FROM TB_LS_EMP867
WHERE EMP_NO = V_EMP_NO;
DBMS_OUTPUT.PUT_LINE(V_EMP_NM || '님의 레코드는 다음과 같습니다. : ' || V_DEPT_NO || ' | ' || V_EMP_NM || ' | ' || V_EMP_ID || ' | ' ||
V_SAL);
-- EMP745테이블에 DB MIGRATION
INSERT INTO EMP745 (DEPT_NO, EMP_NO, EMP_NM, EMP_ID, SAL )
VALUES (V_DEPT_NO, V_EMP_NO, V_EMP_NM, V_EMP_ID, V_SAL);
END;
/
EXEC PR_MIG_EMP745(2);
SELECT * FROM EMP745;
출처: https://sourceflower.tistory.com/27?category=608037 [소스플로우]
'Database > Oracle PLSQL' 카테고리의 다른 글
PL/SQL (9) FOR .. LOOP을 돌려보자. (0) | 2019.04.04 |
---|---|
PL/SQL (8) CURSOR, WHILE LOOP을 활용하여 프로시저 만들기 예제 (0) | 2019.04.04 |
PL/SQL (7) CURSOR, WHILE LOOP을 활용하여 데이터 확인하기 (0) | 2019.04.04 |
PL/SQL (6) CURSOR, BASIC LOOP을 활용한 프로시저 만들어보기 (0) | 2019.04.04 |
PL/SQL (5) 부서번호를 물어보게 하고 부서번호를 입력하면 해당 부서번호에 속한 사원들의 사원번호, 이름, 월급을 출력하는 예제 (0) | 2019.04.03 |
PL/SQL (4) ORA-01403: no data found 대처 SQL문 (EXCEPTIOIN) (0) | 2019.04.03 |
PL/SQL (2) WHILE.. LOOP , 예제 (0) | 2019.04.03 |
PL/SQL (1) LOOP + LPAD함수 +프로시저 예제 (0) | 2019.04.03 |