[ORACLE]プロシージャの例
1003 ワード
EMP 9表、プラス列REALALALタイプはデジタルタイプ.
このプログラムは、どんな従業員番号を付けても、その従業員番号の給料の200%+コミッションの10%を与えます.
しかし、コミッションが300元未満の場合、コミッションは300元の価格で統一的に支払われます.
EMP 9テーブルに従業員の情報が以前に存在していた場合は、先に削除してください.
この情報を削除して再読み込みします.
このプログラムは、どんな従業員番号を付けても、その従業員番号の給料の200%+コミッションの10%を与えます.
しかし、コミッションが300元未満の場合、コミッションは300元の価格で統一的に支払われます.
EMP 9テーブルに従業員の情報が以前に存在していた場合は、先に削除してください.
この情報を削除して再読み込みします.
--프로시저 부분
CREATE OR REPLACE PROCEDURE SCOTT.sp_Ex2(P_EMPNO IN NUMBER) IS
tmpVar NUMBER;
BEGIN
DELETE FROM EMP_9
WHERE EMPNO = P_EMPNO;
INSERT INTO EMP_9 ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO , REALSAL)
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO ,
(CASE WHEN NVL(COMM,0) <= 300 THEN SAL*2+300
ELSE SAL*2+ NVL(COMM,0)*0.1END) REALSAL
FROM EMP
WHERE EMPNO = P_EMPNO;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END sp_Ex2;
/
/
-- 출력
SELECT *
FROM EMP_9;
-- 7566번 사원 추가
EXEC sp_Ex2 (7566);
Reference
この問題について([ORACLE]プロシージャの例), 我々は、より多くの情報をここで見つけました https://velog.io/@americanojelly/ORACLE-프로시저-예제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol