这个与我们有关的问题:APEX LOV Display value look up Tony Andrews建议做的事情:
select display_value
from apex_application_lov_entries
where application_id = 123
and list_of_values_name = 'DEPT_LOV'
and return_value = :p1_deptno;
这似乎引用了应用程序级别的LOV条目;有没有办法查询页面项中定义的LOV?
我希望能够做的是使用变量来引用LOV的显示值,而不是它的返回值。因此,如果我在名为P2_TERM_SELECT
的项目中有LOV,那么:P2_TERM_SELECT.
将给出其返回值,但是其显示值是否还有另一个变量?
答案 0 :(得分:0)
为方便起见,为什么不将页面项lov转换为共享组件中的lov?我的意思是,可能有一种方法可以从项目中检索它,但这不会像杂乱一样吗?你在哪里需要显示值:在plsql或页面本身?如果在页面本身,总是有javascript。
Tony使用的查询是从静态LOV中检索条目的查询。当LOV包含SQL时,它将不那么明确。
您可以检索页面项目LOV的设置:
SELECT lov_definiation
FROM APEX_APPLICATION_PAGE_ITEMS
WHERE application_id = 123
AND page_id = 1
AND item_name = 'P1_DEPTNO';
但是,这只会返回一个字符串。 select语句将是一个字符串。如果已定义静态值列表,则返回也将是一个字符串:与您在定义中看到的字符串相同。例如:
STATIC2:SALES;10,RESEARCH;20
除了apex_plugin_util之外,我不知道解析的内置方法,但我认为这不是使用它的地方。除非您想自己推送(编辑:我尝试使用apex_plugin_util.get_data
,但它不适用于STATIC2
格式)。
我会认真考虑你在做什么以及它将如何增加复杂性。如果您要使用静态lov,我建议使用共享组件LOV,或者考虑使用查找表作为值。
答案 1 :(得分:-1)
在顶点中没有像页面级别的lov那样的东西。当您创建lov时,它始终是共享组件的一部分,并且是应用程序级别。
P2_TERM_SELECT lov项始终返回您在返回值中提供的内容。
所以,在你的场景中,如果你想要描述值:P2_TERM_SELECT那么一个想法就是 有一个LOV查询,如下例所示:
选择display_value disp,return_value || ':'|| display_value从some_table返回。
然后从P2_TERM_SELECT项目中获取显示值 然后做substr(:P2_TERM_SELECT,INSTR(:P2_TERM_SELECT,':')+ 1,LENGTH(:P2_TERM_SELECT))
日Thnx
MK