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的表面上看,您的代码看起来不错。所以你需要明确你的问题是什么。如果你不提供足够的信息,我们帮不了你。