Plsql Oracle11g包体
我正在为课堂准备一份工作表,并提出了关于创建包的问题。创建同一链接上显示的规范很容易。它第一次运行。但包裹的主体让我感到困惑。我花了将近两天的时间来修理一组机器,只为了另一组机器的出现Plsql Oracle11g包体,plsql,oracle11g,package,Plsql,Oracle11g,Package,我正在为课堂准备一份工作表,并提出了关于创建包的问题。创建同一链接上显示的规范很容易。它第一次运行。但包裹的主体让我感到困惑。我花了将近两天的时间来修理一组机器,只为了另一组机器的出现 CREATE OR REPLACE PACKAGE BODY dept_pkg AS PROCEDURE new_dept ( p_id departments.department_id%TYPE, p_dept_name departments.department
CREATE OR REPLACE PACKAGE BODY dept_pkg AS
PROCEDURE new_dept (
p_id departments.department_id%TYPE,
p_dept_name departments.department_name%TYPE,
p_manager departments.manager_id%TYPE,
p_loc departments.location_id%TYPE
)
AS
BEGIN
INSERT INTO departments (
dept_id,
department_name,
manager_id,
location
) VALUES (
p_id,
p_dept_name,
p_manager,
p_loc
);
END;
FUNCTION get_avg_sal (
p_dept_id departments.department_id%TYPE
) RETURN NUMBER IS
v_avg_sal NUMBER;
BEGIN
SELECT AVG(salary) INTO
v_avg_sal
FROM employees
WHERE department_id = p_dept_id;
return(v_avg_sal);
END get_avg_sal;
FUNCTION get_department_count (
p_dept_id departments.department_id%TYPE
) RETURN NUMBER IS
v_emp_num NUMBER(7);
BEGIN
SELECT COUNT(employee_id) INTO
v_emp_num
FROM employees
WHERE p_dept_id = employees.department_id;
return(v_emp_num);
END;
PROCEDURE delete_department (
p_dept_id departments.department_id%TYPE
) AS
v_num_employees NUMBER;
BEGIN
SELECT get_deptartment_count(p_dept_id) INTO
v_num_employees
FROM dual;
IF
v_num_employees = 0
THEN
DELETE FROM employees WHERE p_dept_id = department_id;
ELSE
dbms_output.put_line('the department cannot be deleted because there are employees assigned to that department');
END IF;
END delete_department;
END dept_pkg;
我正在为课堂准备一份工作表,并开始讨论如何创建一个包。创建同一链接上显示的规范很容易。它第一次运行。但包裹的主体让我感到困惑。我花了将近两天的时间来修理一组机器,只为了另一组机器的出现。请帮助问题到底是什么?当您单击我原始评论中的蓝色“this question”(此问题)时,将显示工作表问题的快照。您会遇到哪些编译错误?从ir的表面上看,您的代码看起来不错。所以你需要明确你的问题是什么。如果你不提供足够的信息,我们帮不了你。