oracle pl sql函数有错误

时间:2013-07-27 20:13:21

标签: plsql oracle11g

我想创建一个函数,该函数返回一个名为Rating with a子句的表中的行数。在declare语句和结束语句之前我出错了吗?

 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;

我将非常感谢帮助。谢谢。

1 个答案:

答案 0 :(得分:3)

您不应该拥有DECLARE关键字。您只需要匿名块(或子块)。

create or replace
FUNCTION get_movies(p_userid IN NUMBER) RETURN NUMBER
IS
  cnt NUMBER;
BEGIN
  ...

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