当我在oracle表上运行普通的sql查询时:
select name from table;
我得到了想要的结果。
但是当我以pl / sql运行它时,我不断收到错误ORA-01422: exact fetch returns more than requested number of rows
:
declare
l_name VARCHAR(200);
begin
select name into l_name from table;
end;
我知道该错误告诉我我正在尝试向l_name
中插入更多行,但是由于搜索将几乎总是返回更多内容,因此如何使l_name
动态超过1个结果。
使用pl / sql的原因是因为我需要基于Oracle Apex上的http
搜索来显示项目列表,而普通的sql代码无法执行此操作。
htp.p('Names found: '||TO_CHAR(l_name));
答案 0 :(得分:0)
您可以使用for循环。这是一个(非常粗糙的)示例,它允许您遍历所有匹配的行,并使用分号终止符打印每个名称。
htp.prn('Names found: ');
for my_data in (select name from table) loop
htp.prn(to_char(my_data.name) || '; ');
end loop;
htp.p(''); -- newline