Pl / SQL包,包括年薪计算功能

时间:2015-04-12 13:04:21

标签: mysql sql oracle plsql

我需要帮助在PL / SQL中创建一个包,如下所示: 包含一个函数和一个过程的包。函数计算特定员工的年薪,并使用过程将年薪插入另一个具有员工ID的表中。 这是我尝试但我不知道如何添加插入我的值的过程 进入"特定_emp"表

CREATE TABLE particular_emp (
  salary string NOT NULL,
  emp_id NUMBER NOT NULL
);

CREATE OR REPLACE PACKAGE salary IS
CREATE OR REPLACE FUNCTION get_yearly_salary(p_sal  IN employees.salary%TYPE,
                                             p_comm IN employees.commission_pct%TYPE)
  RETURN NUMBER IS
  BEGIN
    RETURN (NVL(p_sal, 0) * 12 + (NVL(p_comm, 0) * nvl(p_sal, 0) * 12));
  END get_yearly_salary;

1 个答案:

答案 0 :(得分:0)

以下是我的表现及其工作方式!

CREATE OR REPLACE PACKAGE empinfo
IS
FUNCTION YSALARY(p_empno IN NUMBER) RETURN NUMBER;
PROCEDURE INSERTSAL (p_empno IN NUMBER);
END empinfo;
/


CREATE OR REPLACE PACKAGE BODY empinfo is
FUNCTION YSALARY(p_empno IN NUMBER) RETURN NUMBER IS
vsal INTEGER;
BEGIN
vsal :=200;
vsal :=200*12;
EXCEPTION 
WHEN NO_DATA_FOUND
THEN
DMBS_OUTPUT.PUT_LINE('NO DATA is available');
END;
PROCEDURE INSERTSAL(p_empno IN NUMBER) is
BEGIN
INSERT INTO EMPLOYEESALARY
VALUES(200,YSALARY(1));
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.PUT_LINE('NO DATA');
END;
END empinfo;
/