【发布时间】:2017-04-20 11:54:04
【问题描述】:
我正在编写一个包含许多功能和过程的程序包来处理 HR 表。但我不确定是否对子程序的顺序有任何考虑。如果你编译一个包然后在现有包的中间创建一个新过程会发生什么?谢谢。
CREATE OR REPLACE PACKAGE BODY empinfo_pkg IS
FUNCTION emp_sal_1(
p_empid employees.employee_id%TYPE,
p_sal employees.salary%TYPE)
RETURN NUMBER
IS
v_incre_sal NUMBER(8,2);
BEGIN
SELECT SALARY * p_sal
INTO v_incre_sal
FROM employees
WHERE employee_id = p_empid;
RETURN v_incre_sal;
END emp_sal_1;
PROCEDURE emp_basicinfo_1(
p_empid employees.employee_id%TYPE)
IS
v_info VARCHAR2(200);
BEGIN
SELECT employee_id || ' ' || first_name || ' ' || last_name
INTO v_info
FROM employees
WHERE employee_id = p_empid;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO EXISTE EMPLEADO CON ID INGRESADO');
END emp_basicinfo_1;
FUNCTION emp_comm_1(
p_empid employees.employee_id%TYPE)
RETURN NUMBER
IS
v_comm NUMBER(8,2);
BEGIN
SELECT commission_pct
INTO v_comm
FROM employees
WHERE employee_id = p_empid;
RETURN v_comm;
END emp_comm_1;
PROCEDURE emp_allinfo_1(
p_empid IN employees.employee_id%TYPE,
p_refcur OUT SYS_REFCURSOR)
IS
BEGIN
OPEN p_refcur
FOR SELECT *
FROM employees
WHERE employee_id = p_empid;
END emp_allinfo_1;
END empinfo_pkg;
/
SHOW ERRORS;
【问题讨论】:
标签: oracle function plsql package procedure