问题描述: 在APEX中,当使用“List of Values”(LOV)PL/SQL函数体返回SQL查询时,查询不会读取项目值。
解决方法: 以下是解决该问题的步骤和代码示例:
首先,确保你的LOV已正确配置。在APEX应用程序的页面设计器中,选择需要使用LOV的项。在属性检查器中,找到“List of Values”属性,然后选择“PL/SQL函数体”作为LOV类型。
创建一个PL/SQL函数体,用于返回SQL查询结果。在函数体中,你需要使用APEX_ITEM包的APEX_ITEM.SELECT_LIST_FROM_QUERY函数来生成一个HTML SELECT元素。
以下是一个示例函数体的代码,根据你的需求进行修改:
FUNCTION get_items(p_query IN VARCHAR2) RETURN VARCHAR2 IS
l_items VARCHAR2(4000);
BEGIN
SELECT listagg(apex_item.select_list_from_query(p_query), ',')
WITHIN GROUP (ORDER BY 1)
INTO l_items
FROM dual;
RETURN l_items;
END;
在函数体中,使用p_query参数作为你的SQL查询语句。该函数将返回一个包含所有项目值的字符串。
在LOV属性的“PL/SQL函数体”字段中,调用你创建的函数。例如,如果你的函数名为get_items,你可以在LOV属性中输入:get_items(:P1_QUERY)。
请注意,:P1_QUERY是一个包含你的SQL查询语句的APEX表达式项。
最后,在你的页面上,将需要使用LOV的项的“List of Values”属性设置为你创建的LOV。
通过按照上述步骤创建和配置LOV,你应该能够解决APEX中“List of Values PL/SQL函数体返回SQL查询不会读取项目值”的问题。这样,你的LOV将会正确显示和使用SQL查询的结果作为项目值。
上一篇:APEX中的死锁示例