Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql PLS-00201:标识符';无员工';必须申报_Sql_Database_Oracle_Plsql_Syntax Error - Fatal编程技术网

Sql PLS-00201:标识符';无员工';必须申报

Sql PLS-00201:标识符';无员工';必须申报,sql,database,oracle,plsql,syntax-error,Sql,Database,Oracle,Plsql,Syntax Error,您好,我需要帮助,因为我遇到了以下错误: PLS-00201:必须声明标识符“无员工” CREATE or replace PACKAGE police_employee_mgmt AS no_employees NUMBER; FUNCTION insert_employee (emp_id NUMBER, emp_name VARCHAR2, emp_grade NUMBER, emp_password VARCHAR2, emp_username VARCHAR2) R

您好,我需要帮助,因为我遇到了以下错误: PLS-00201:必须声明标识符“无员工”

CREATE or replace PACKAGE police_employee_mgmt AS 
   no_employees NUMBER;
   FUNCTION insert_employee
   (emp_id NUMBER, emp_name VARCHAR2, emp_grade NUMBER, emp_password VARCHAR2, emp_username VARCHAR2)
RETURN NUMBER;
   PROCEDURE delete_employee(emp_id NUMBER);
   PROCEDURE change_employee_grade(emp_id NUMBER, emp_grade NUMBER);
END police_employee_mgmt;
然后创建一个函数,为变量指定一个值:

CREATE OR REPLACE FUNCTION number_of_employees
RETURN NUMBER IS
total_employees NUMBER;
BEGIN
    SELECT COUNT(*) 
    INTO total_employees 
    FROM pl_police_employee;
    RETURN(total_employees);
END;
然后

BEGIN
no_employees := number_of_employees();
END;

如错误所述,您需要声明没有员工。我估计您的最后一个代码块在您声明它的包之外。我认为您也可以使用匿名声明:

DECLARE
  num_employees NUMBER;
BEGIN
  num_employees := number_of_employees();
  ...
END

顺便说一句:我使用不同的变量名有两个原因,首先,
no\uu
是一个非常容易混淆的前缀,其次,为不同的东西使用不同的名称有助于更快地识别错误的位置。出于兴趣,您是否有一个包体,如果是这样的话,独立函数和匿名块是否应该是主体的一部分?错误消息应该包含行号。