Oracle Apex : How to execute procedure and display the results on a page

标签 oracle stored-procedures plsql oracle-apex

我有一个过程,动态地将应用程序 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

所以基本上它满足了动态更改列标题和显示动态 View 的要求。

现在如何将此过程添加到 oracle apex 页面? 我知道它将首先添加为执行的页面进程,但是由于结果是动态的并且在运行时,我如何显示结果?

编辑:为了进一步清晰起见,这是正在执行的过程:

最佳答案

考虑使用经典报表类型的区域,其源基于返回 SQL 查询的 PL/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;

关于Oracle Apex : How to execute procedure and display the results on a page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65387458/

相关文章:

sql - 如何估算Oracle索引的大小?

c# - 为什么在集合中找不到 Mysql 存储过程参数?

php - 如何在 codeigniter 代码中使用两个或多个存储过程?

sql - 使用 dbms_random.value 和指定的比例创建

java - ORA-29532 : Java call terminated by uncaught Java exception: java. lang.NoClassDefFoundError

连接时 SQL 计数变得疯狂

sql - 在 Oracle SQL 中使用 AVG()

sql - 计算Oracle中逗号分隔字符串中的元素数

jpa - 在 JPA 2.0 中执行存储过程

oracle - 我可以删除/添加属性而不产生任何后果吗? Oracle 对象类型