Plsql oracle pl sql函数有错误

Plsql oracle pl sql函数有错误,plsql,oracle11g,Plsql,Oracle11g,我想创建一个函数,用where子句返回名为Rating的表中的行数 create or replace FUNCTION get_movies(user IN NUMBER) RETURN NUMBER IS DECLARE cnt NUMBER; BEGIN SELECT count(*) INTO cnt FROM rating where userid= user; RETURN cnt; END; 非常感谢您的帮助。谢谢。您不应该使用DECLARE关键字。您只需要为匿名块(或子

我想创建一个函数,用where子句返回名为Rating的表中的行数

 create or replace
FUNCTION get_movies(user IN NUMBER) RETURN NUMBER
IS
  DECLARE cnt NUMBER;
BEGIN
SELECT count(*)
INTO cnt 
FROM rating
where userid= user;
RETURN cnt;
END;

非常感谢您的帮助。谢谢。

您不应该使用
DECLARE
关键字。您只需要为匿名块(或子块)使用它


user
是一个保留字,因此我建议不要将其用作参数名。在
where
子句中,我不确定它是否将使用您的参数值,或者执行函数的用户的名称;这将导致错误,因为该字符串值无法隐式转换为数字。

您不应该使用
DECLARE
关键字。您只需要为匿名块(或子块)使用它


user
是一个保留字,因此我建议不要将其用作参数名。在
where
子句中,我不确定它是否将使用您的参数值,或者执行函数的用户的名称;这会出错,因为字符串值无法隐式转换为数字。

谢谢Alex,我没有注意到。谢谢。谢谢Alex,我没有注意到。谢谢。
create or replace
FUNCTION get_movies(p_userid IN NUMBER) RETURN NUMBER
IS
  cnt NUMBER;
BEGIN
  ...