微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

oracle EBS中的绑定参数

如何解决oracle EBS中的绑定参数

我需要将值列表添加到 oracle 电子商务套件中报表生成器的 bin 参数中

在这个值列表中,我需要第一个选项是 all,其他值是 select 语句的结果,如下所示:

all
10
20
30
....

所以如果用户点击“所有”,报告将查询所有部门 如果用户点击任何其他特定部门,报告将查询该特定部门

如何添加这个“全部”选项??

解决方法

我不使用 EBS,但我知道报告和一些 SQL 所以 - 这是我的建议。

添加“all”选项很简单 - union 它与其他值。像这样:

SQL> select value
  2  from (select 1 rn,'all' value from dual
  3        union all
  4        select 2 rn,to_char(deptno) from dept
  5       )
  6  order by rn,value;

VALUE
----------------------------------------
all
10
20
30
40

SQL>

然后,在查询中,您可以将其用作

select e.deptno,e.ename,e.job
from emp e
where e.deptno = case when :par_deptno = 'all' then to_char(e.deptno)
                      else :par_deptno
                 end
order by e.deptno,e.ename;

上面的例子,在 SQL*Plus 中运行(所以不要介意替换而不是绑定变量):

首先,我要通过 10

SQL> select e.deptno,e.job
  2  from emp e
  3  where e.deptno = case when '&&par_deptno' = 'all' then to_char(e.deptno)
  4                        else '&&par_deptno'
  5                   end
  6  order by e.deptno,e.ename;
Enter value for par_deptno: 10

    DEPTNO ENAME      JOB
---------- ---------- ---------
        10 CLARK      MANAGER
        10 KING       PRESIDENT
        10 MILLER     CLERK

现在,让我们试试all

SQL> undefine par_deptno
SQL> /
Enter value for par_deptno: all

    DEPTNO ENAME      JOB
---------- ---------- ---------
        10 CLARK      MANAGER
        10 KING       PRESIDENT
        10 MILLER     CLERK
        20 ADAMS      CLERK
        20 FORD       ANALYST
        20 JONES      MANAGER
        20 SCOTT      ANALYST
        20 SMITH      CLERK
        30 ALLEN      SALESMAN
        30 BLAKE      MANAGER
        30 JAMES      CLERK
        30 MARTIN     SALESMAN
        30 TURNER     SALESMAN
        30 WARD       SALESMAN

14 rows selected.

SQL>

我觉得还行。现在,它在 EBS 中会是什么样子,我不知道。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。