Oracle Apex Shuttle 项目数组在提交时为空

Posted

技术标签:

【中文标题】Oracle Apex Shuttle 项目数组在提交时为空【英文标题】:Oracle Apex Shuttle Item Array empty on submit 【发布时间】:2016-06-30 09:48:39 【问题描述】:

我正在尝试将 Shuttle Item 中的值保存到表格中。 Shuttle 项的值取自 LOV,名称作为显示值,ID 作为返回值。

但是,我创建的数组在保存后仍然为空,因此无论我选择多少项,长度始终为 0。

存储项目的PL/SQL代码是:

DECLARE 
diagnostic NUMBER;
l_selected apex_application_global.vc_arr2;

BEGIN
diagnostic := ID_DIAG_OPHT_SEQ.NEXTVAL;
l_selected := apex_util.string_to_table(:P205_SHUTTLE);

for i in 1..l_selected.count loop
    insert into DIAG_OPHT_LIST(ID_DIAG_OPHT, ID_LIST_OPHT)
    values (diagnostic, l_selected(i));
end loop;
end;

当我插入一个固定值 ('3:7:25:45:') 而不是 ':P205_AJ_PATHOLOGIE' 时,一切正常。

在项目属性本身中,我将所有内容都保留为标准。正如我所说,我使用的是命名 LOV,使用的源是“仅当会话状态中的当前值为 null 时”且源类型为“静态分配”。

提前感谢您的帮助

【问题讨论】:

您是否在运行此 pl/sql 的操作中传递了参数:P205_AJ_PATHOLOGIE(或:P205_SHUTTLE)? 是的,你在哪里运行这段代码?例如动态操作或提交过程? 我在提交时通过它(验证后)原始参数是:P205_AJ_PATHOLOGIE(班车项目名称) 【参考方案1】:

调用您的进程时,页面项中的数据看起来像:P205_SHUTTLE 或 :P205_AJ_PATHOLOGIE 为空。

您可以检查它 - 只需在您的代码 onSubmit 中引发错误

raise_application_error('-20000',:P205_SHUTTLE||' '||P205_AJ_PATHOLOGIE );

如果它返回 null - 然后在保存过程之前检查进程,因为某处项目值已被删除。

有时我在会话中遇到同样的问题 - 关闭您的浏览器并再次打开。

【讨论】:

谢谢,实际上返回为空。我现在创建了一个动态操作,测试相同的代码并提交页面项目,然后它返回选定的值。因此,我尝试使用动态操作创建一种解决方法来保存数据。希望有效 也许您的流程在“重置页面”流程之后开始?你能检查页面上的其他项目是否为 null 吗? 不,其他项目都有其正确的值。 尝试在此页面中创建另一个项目并为此列设置另一个项目名称。

以上是关于Oracle Apex Shuttle 项目数组在提交时为空的主要内容,如果未能解决你的问题,请参考以下文章

Oracle APEX - 将 Shuttle Item 选择保存到新表

Oracle Apex:在另一个项目更改时刷新项目

Oracle Apex:Shuttle 没有将价值放在右侧并提供 null

APEX Shuttle - 获得更多选定值

sql apex shuttle v2,connoar

ORACLE apex - 使用 PL/SQL 循环通过复选框项目