Oracle APEX - 修改作为数据库列的项目的会话状态

Oracle APEX - modifying session state of items that are database columns

我有一个 DML 表单,其中大部分字段都是数据库列。其中一个字段 - 用户,在数据库中是可选的,并且是页面上的仅显示项。页面上还有一个开关控件,当它设置为 Yes 时,P4_USER 项将填充当前用户名,而当它被切换为 No 时,该字段应该被清除。

我设置了切换控件更改时的动态操作,以设置 P4_USER 项的值并根据需要显示或隐藏它,它工作正常。但是当我提交表单时出现错误:

Session state protection violation: This may be caused by manual alteration of protected page item P4_USER. If you are unsure what caused this error, please contact the application administrator for assistance.

我想将 Value Protected 属性设置为 No,但该属性仅适用于隐藏字段,我的是 Display Only。有什么解决方法吗?

您需要将项目的会话状态保护属性更改为 "Unrestricted"。这是在项目属性中的 "Security" 下。

如果选中 "Send On Page Submit" 选项,该项目将受到保护

但是你想发送物品数据,我建议使用两个物品,一个作为显示只显示数据,另一个作为隐藏物品发送数据