PLSQL 错误 PLS-00201:必须声明标识符

PLSQL error PLS-00201: identifier must be declared

我正在处理游戏用户数据库。我正在尝试创建一个函数,其中 returns 居住在某个州的用户数量(执行该函数时请求)。所以:

CREATE OR REPLACE FUNCTION userNumber(v_state users.state%type)
RETURN number
AS
    result number(10);
    
BEGIN
    SELECT COUNT(*) INTO result
    FROM users
    WHERE users.state= v_state;
    
    RETURN result;
END;
/

当我尝试使用它时,(例如使用州名称佛罗里达州)它向我显示错误:PLS-00201:必须声明标识符 'FLORIDA'。

declare
    v_state users.state%type:=&state;
    v_result number(10);
    
begin 
    v_result := userNumber(v_state);
    dbms_output.put_line('The users number of the state '|| v_state || ' is ' || v_result);
end;
/

如有任何帮助,我将不胜感激。

"Florida" 是一个字符串,因此您必须将替换变量括在单引号中:

v_state users.state%type := '&state';