我的查询 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
子句。
我正在研究的这个功能是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
子句。