Oracle Apex 在 where 语句中选择列

问题描述 投票:0回答:1

我知道有人可以做到这一点......但不是我。 我想要一个选择列表,该列表将返回一个可以在报告查询中使用的“where”语句。 例如,我的表中有一个名为“条件 A”的列,它是 1 或 0。我的表中有另一列名为“条件 B”,它是 1 或 0。我想要一个名为“选项”将让用户选择自己的where 语句。 对于此示例,选项为: 其中条件 A = 1 其中条件 B = 1 空

然后在我的报告查询中,我可以使用该返回值,以便我的查询可以说: 选择 * 来自我的表 选项(&C)。

类似这样的事情。 我希望我说得清楚。 我尝试了几种不同的方法来使其发挥作用,但没有成功。 请帮忙! 谢谢!

oracle-apex oracle-apex-5
1个回答
0
投票

这是一个例子。这是关于 EMP 表的报告,其中包含返回不同 where 子句的选择列表。

选择列表页项目

页面项 P273_WHERE_CLAUSE,输入“选择列表”,值:

enter image description here

报告

“返回 SQL 查询的函数体”类型的交互式报告。这是必需的,因为 SQL 需要动态生成。

来源:

DECLARE
    l_query varchar2(4000);
    l_where_clause varchar2(4000); 
BEGIN
    -- need default value so report compiles correctly
    l_where_clause := CASE WHEN :P273_WHERE_CLAUSE IS NULL THEN '1 = 0' ELSE :P273_WHERE_CLAUSE END;
    l_query := 
    q'!select
                      EMPNO,
                      ENAME
                   from
                      EMP
                   where 
                      %0!';
    return(apex_string.format(l_query, l_where_clause));
END;

设置“要提交的页面项目”(用于下一步的动态操作)

enter image description here

动态动作

创建针对 P273_WHERE_CLAUSE 更改的动态操作,并在交互式报告上执行刷新操作。

© www.soinside.com 2019 - 2024. All rights reserved.