Oracle Apex:如何执行过程并在页面上显示结果
Oracle Apex : How to execute procedure and display the results on a page
我有一个程序动态地将应用程序 ID 作为输入并根据应用程序 ID 显示结果。
所以如果 :
exec get_app_data(11);
结果为:
A B C
1 2 3
1 2 3
如果:
exec get_app_data(12);
D E F
1 2 3
1 2 3
所以基本上它满足了动态更改列headers和显示动态视图的要求。
现在如何将此过程添加到 oracle apex 页面?
我知道它将首先添加为执行的页面进程,但由于结果是动态的并且在运行时,我该如何显示结果?
编辑:为了进一步清楚,这是正在执行的程序:
考虑使用经典报表类型的区域,其来源基于 PL/SQL 返回 SQL 查询的函数体。
然后,您可以通过删除游标内容并让参数基于页面项目来简化代码。也许是这样的:
declare
l_query varchar2(4000);
begin
SELECT 'SELECT *' || CHR(10) ||
' FROM DATA_VALUE' || CHR(10) ||
' PIVOT(' || CHR(10) ||
' MAX(VAL)' || CHR(10) ||
' FOR SEQ IN (' || CHR(10) ||
' ' || LISTAGG(
SEQ || ' "' || LABEL || '"',
',' || CHR(10) ||' '
)
WITHIN GROUP(ORDER BY SEQ) || CHR(10) ||
' )' || CHR(10) ||
' )' || CHR(10) ||
' WHERE APP_ID = ' || APP_ID
INTO l_query
FROM DATA_HEADER
WHERE APP_ID = :P1_APP_ID
GROUP BY APP_ID;
return l_query;
end;
我有一个程序动态地将应用程序 ID 作为输入并根据应用程序 ID 显示结果。
所以如果 :
exec get_app_data(11);
结果为:
A B C
1 2 3
1 2 3
如果:
exec get_app_data(12);
D E F
1 2 3
1 2 3
所以基本上它满足了动态更改列headers和显示动态视图的要求。
现在如何将此过程添加到 oracle apex 页面? 我知道它将首先添加为执行的页面进程,但由于结果是动态的并且在运行时,我该如何显示结果?
编辑:为了进一步清楚,这是正在执行的程序:
考虑使用经典报表类型的区域,其来源基于 PL/SQL 返回 SQL 查询的函数体。
然后,您可以通过删除游标内容并让参数基于页面项目来简化代码。也许是这样的:
declare
l_query varchar2(4000);
begin
SELECT 'SELECT *' || CHR(10) ||
' FROM DATA_VALUE' || CHR(10) ||
' PIVOT(' || CHR(10) ||
' MAX(VAL)' || CHR(10) ||
' FOR SEQ IN (' || CHR(10) ||
' ' || LISTAGG(
SEQ || ' "' || LABEL || '"',
',' || CHR(10) ||' '
)
WITHIN GROUP(ORDER BY SEQ) || CHR(10) ||
' )' || CHR(10) ||
' )' || CHR(10) ||
' WHERE APP_ID = ' || APP_ID
INTO l_query
FROM DATA_HEADER
WHERE APP_ID = :P1_APP_ID
GROUP BY APP_ID;
return l_query;
end;