[英]My query returns multiple rows
I am working on this function is pl/sql where I want to return one number, the amount of expressions. 我正在使用的函数是pl / sql,我想返回一个数字,即表达式的数量。
This is my function: 这是我的功能:
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;
When I try to use it like this: 当我尝试像这样使用它时:
select Project.MEDIA_F ('tv', '06-05-13', 'n')
from MEDIA;
It return all the records from the table with either everywhere a 1 or a 0. 它返回表中所有位置为1或0的所有记录。
You are not using any columns from table in the from
clause. 您没有在
from
子句中使用来自table的任何列。 However, the SQL engine will still return one row for each row "generated" by the from
clause. 但是,SQL引擎仍将为
from
子句“生成”的每一行返回一行。
Assuming you are using Oracle, just use dual
instead of a table name: 假设您使用的是Oracle,只需使用
dual
而不是表名:
select Project.MEDIA_F('tv', '06-05-13', 'n')
from dual;
Most other databases don't require the from
clause. 大多数其他数据库不需要
from
子句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.