“确切的提取返回超过请求的行数”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“确切的提取返回超过请求的行数”相关的知识,希望对你有一定的参考价值。
我正在使用Oracle Apex 5,当我尝试使用以下代码为列运行应用程序时,我收到一条错误消息,指出“确切提取的返回次数超过了请求的行数”
DECLARE
Num VARCHAR2(40);
BEGIN
SELECT CONCAT(YEAR, '-')
INTO Num FROM APPS;
END;
答案
变量terranumber只能包含一个值。因此,如果您选择查询返回多行,则会抛出此错误。
如果您想要任何一个值:
declare
terranumber varchar2(40);
begin
select concat(year, '-') into terranumber
from mp_applications
where rownum = 1;
end;
/
也许你想获得一年的max
(或min
):
declare
terranumber varchar2(40);
begin
select concat(max(year), '-') into terranumber
from mp_applications;
end;
/
或者您可能希望逐个访问所有值:
begin
for rec in (select concat(year, '-') as year from mp_applications)
loop
-- use rec.year as required
end loop;
end;
/
另一答案
使用INTO子句时,只能选择一行。通常,您添加WHERE子句条件以将返回的数据限制为仅一行。或者当然取决于你想要做什么。
以上是关于“确切的提取返回超过请求的行数”的主要内容,如果未能解决你的问题,请参考以下文章