首页 > 解决方案 > APEX Interactive Grip 更新 PL/SQL 代码太长

问题描述

我为表创建了一个 APEX 应用程序,以允许用户访问表中的更新记录。我使用了交互式网格并在其中添加了编辑选项。我有一个标识列 SEQ_ID,它默认用于获取数据库中的下一个值。因此,当我在 APEX 中编辑任何列时,我都会遇到错误。

ORA-32796: 无法更新生成的始终标识列。

因此,在交互式网格的处理选项中,我将其更改为 PL/SQL 代码并添加了一条更新语句,以便我可以从 APEX 中排除 SEQ_ID 列更新,而不是区域源。这解决了上述 ORA 错误。

但是我的一个表有 220 列,应该在 APEX 中进行编辑(我知道这听起来很奇怪,但是是的)所以当我写一个更新语句时它给了我一个错误,如下所示。

值太长了 4000 个字符。

谁能帮我解决这个问题。

更新语句很简单,如下所示

更新表

设置 Col1 = :Col1

,Col2 = :Col2 .... ... ...

其中 SEQ_ID = :SEQ_ID

标签: oracle-apexoracle-apex-19.1

解决方案


解决方案1:

恢复使用默认的 IG 更新/插入并右键单击 IDENTITY 列并单击删除:

示例删除列

解决方案2:

创建一个过程并将您的更新/插入代码移动到该过程中。您应该能够访问过程中的 APEX_COLLECTIONS,因为它们是会话的一部分。


推荐阅读