Sql PLS-00201:标识符';无员工';必须申报
您好,我需要帮助,因为我遇到了以下错误: 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
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
是一个非常容易混淆的前缀,其次,为不同的东西使用不同的名称有助于更快地识别错误的位置。出于兴趣,您是否有一个包体,如果是这样的话,独立函数和匿名块是否应该是主体的一部分?错误消息应该包含行号。