我的查询 returns 多行

My query returns multiple rows

我正在研究的这个功能是pl/sql我想return一个数,表达式的数量。

这是我的功能:

CREATE OR REPLACE FUNCTION media_f(
      p_media in varchar2,
      p_date in TIMESTAMP,
      p_sentiment in varchar2)

RETURN NUMBER
IS

  l_amount NUMBER;
CURSOR c_media IS
  SELECT COUNT() 
  FROM MEDIA
  WHERE MEDIA.DATES = p_date
    AND MEDIA.KIND = p_media
    AND MEDIA.POSITIVE_NEGATIVE = p_sentiment;


BEGIN
     open c_media;
     fetch c_media into l_amount;
     close c_media;

RETURN l_amount;
END;

当我尝试这样使用它时:

select Project.MEDIA_F ('tv', '06-05-13', 'n') 
from MEDIA;

它 return 来自 table 的所有记录,到处都是 1 或 0。

您没有在 from 子句中使用来自 table 的任何列。但是,SQL 引擎仍将 return 每行一行 "generated" from 子句。

假设您使用的是 Oracle,只需使用 dual 而不是 table 名称:

select Project.MEDIA_F('tv', '06-05-13', 'n') 
from dual;

大多数其他数据库不需要 from 子句。