Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql &引用;精确提取返回的行数超过请求的行数”;_Sql_Oracle_Plsql_Oracle Apex_Oracle Apex 5 - Fatal编程技术网

Sql &引用;精确提取返回的行数超过请求的行数”;

Sql &引用;精确提取返回的行数超过请求的行数”;,sql,oracle,plsql,oracle-apex,oracle-apex-5,Sql,Oracle,Plsql,Oracle Apex,Oracle Apex 5,我正在使用OracleApex 5,当我尝试使用以下列代码运行该应用程序时,我收到一个错误消息:“精确获取返回的行数超过请求的行数” 使用INTO子句时只能选择一行。通常,添加WHERE子句条件以限制返回的数据仅为一行。或者,这取决于您尝试执行的操作。变量terranumber只能包含一个值。所以,如果选择“查询返回多行”,它将抛出此错误 如果需要任何一个值: declare terranumber varchar2(40); begin select concat(year,

我正在使用OracleApex 5,当我尝试使用以下列代码运行该应用程序时,我收到一个错误消息:“精确获取返回的行数超过请求的行数”


使用INTO子句时只能选择一行。通常,添加WHERE子句条件以限制返回的数据仅为一行。或者,这取决于您尝试执行的操作。

变量terranumber只能包含一个值。所以,如果选择“查询返回多行”,它将抛出此错误

如果需要任何一个值:

declare
    terranumber varchar2(40);
begin
    select concat(year, '-') into terranumber 
    from mp_applications
    where rownum = 1;
end;
/
也许您希望获得年度的
max
(或
min
):

或者,您可能希望逐个访问所有值:

begin
    for rec in (select concat(year, '-') as year from mp_applications)
    loop
        -- use rec.year as required
    end loop;
end;
/

只需尝试从MP_应用程序运行
选择CONCAT(年份“-”)。您将看到它返回多个行,这些行显然不能放在单个变量中。是否要获取任何一个值?可能是max/min?当我使用rownum时,它只从调用的列中获取第一行(在concat中)。如何获取列的最新行?(TOP和LIMIT在Oracle Apex 5上不起作用)@thelamp您可以使用rownum值:选择*从(您的选择+按日期排序),其中rownum<10
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;
/