0

我想创建一个函数,该函数使用 where 子句返回名为 Rating 的表中的行数。在 declare 语句和 end 语句之前我哪里出错了?

 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;

我会很感激帮助。谢谢。

4

1 回答 1

3

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

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

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

于 2013-07-27T20:16:38.237 回答