使用Union中的Oracle应用程序设置值



我需要创建一个值集,该值集中从自定义表中选择项目以作为某些运行no并与dual中的select'select'一起,以便当用户选择所有程序运行时,所有项目。我尝试创建自定义表的视图,然后使用

select item from xx_cust_view where run_no=:$FLEX$.RUN_NO_VS union select 'ALL' from dual 

它可以在值集中保存而没有错误,但是当我在运行程序时尝试传递值时会出现错误。请建议。

我不知道Oracle应用。但是我认为以下示例可能会给您一个想法。

它是基于HR的部门表中的SQL*Plus运行的。参数par_dname接受real 部门名称(例如"购买"(或 all (然后应该返回所有部门(。Rownum在这里只是为了限制返回的行数(以免我显示所有27个部门(。

有一个查看:

SQL> select * from departments
  2  where department_name =
  3    case when '&&par_dname' = 'ALL' then department_name
  4         else '&&par_dname'
  5    end
  6    --
  7    and rownum <= 5;
Enter value for par_dname: Purchasing
DEPARTMENT_ID DEPARTMENT_NAME                MANAGER_ID LOCATION_ID
------------- ------------------------------ ---------- -----------
           30 Purchasing                            114        1700
SQL> undefine par_dname
SQL> /
Enter value for par_dname: ALL
DEPARTMENT_ID DEPARTMENT_NAME                MANAGER_ID LOCATION_ID
------------- ------------------------------ ---------- -----------
           10 Administration                        200        1700
           20 Marketing                             201        1800
           30 Purchasing                            114        1700
           40 Human Resources                       203        2400
           50 Shipping                              121        1500
SQL>

值集不允许联合,组。因此,我创建了联合查询的视图,并在值集中使用此视图来获取值。

最新更新