我正在尝试根据存储在集合对象中的值在 ApEx 中创建一个选择列表。
基本上我正在运行一个调用java类的存储过程,它设置varchar2数组的值。
要获取值并将它们打印到 dbms 输出,我可以运行以下 PLSQL 块:
DECLARE
vArray testschema.stringarray_type := testschema.stringarray_type();
BEGIN
testschema.getLOV(vArray);
FOR i IN 1..vArray.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Counter: ' || i || ' Value: "' || vArray(i) || '".');
END LOOP;
END;
现在我只需要将所有这些值放入选择列表中,而不是将它们打印出来。
如何重写此 PLSQL 代码以代替选择列表的 LOV 源工作?
有没有办法让我改变代码来做这样的事情:
FOR i IN 1..vArray.COUNT LOOP
:P1_SELECT_LIST.append(vArray(i));
END LOOP;
并以动态动作或其他方式运行它?
谢谢
编辑:
我做了一个临时解决方法,现在我在页面加载时使用动态操作来运行一些 PLSQL。我将对象中的每个值附加到我的 plsql 块中的 varchar2 变量中,用逗号分隔。然后,我将隐藏页面项设置为等于该变量的值,因此它的值类似于:
item1,item2,item3,item4,item5
然后通过 javascript 动态操作,我将项目值拆分为逗号,然后将选择列表的 html 替换为自定义构建的 html 字符串,以将我的所有项目列为选项。
这不是我理想的解决方案,所以我仍然想弄清楚是否有更好的方法。或者也许可以在更好的解决方案中使用此解决方法的一部分。