zac*_*cki 0 oracle error-handling plsql return-value oracle-apex
我正在尝试使用此 Plsql 将值返回到 Apex 页面项中。页面项源是 PL/SQL 函数体。
DECLARE
v_val VARCHAR2 (3000 CHAR);
CURSOR c_mylist
IS
select * from table_mylist
order by id;
BEGIN
FOR r_mylist IN c_mylist
LOOP
--dbms_output.put_line( c_mylist.item );
v_val := c_mylist.item ||' '||c_mylist.item;
END LOOP;
return v_val;
END;
Run Code Online (Sandbox Code Playgroud)
出乎意料的是,它只将游标的最后一个值返回到页面项中,而不是所有行值。在 SQL Developer 中尝试使用 dbms_output.put_line 显示正确的结果。我的脚本出了什么问题?
本来应该
v_val := v_val ||' '||c_mylist.item;
Run Code Online (Sandbox Code Playgroud)
代替
v_val := c_mylist.item ||' '||c_mylist.item;
Run Code Online (Sandbox Code Playgroud)
不过,您可以使用单个select语句,而不是整个 PL/SQL 代码:
declare
v_val varchar2(3000);
begin
select listagg(item, ' ') within group (order by id)
into v_val
from table_mylist;
return v_val;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34 次 |
| 最近记录: |