我需要创建一个值集,该值集中从自定义表中选择项目以作为某些运行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>
值集不允许联合,组。因此,我创建了联合查询的视图,并在值集中使用此视图来获取值。