如何在 oracle apex 18 中编辑交互式网格(带有复杂的 sql 查询)?
Posted
技术标签:
【中文标题】如何在 oracle apex 18 中编辑交互式网格(带有复杂的 sql 查询)?【英文标题】:How to edit Interactive Grid (with complex sql query) in oracle apex 18? 【发布时间】:2019-05-07 01:57:09 【问题描述】:我正在尝试在 Oracle Apex 18 中制作交互式网格页面。
我的 oracle 工作区中有三个数据库。 首先是一个类别, 二是内容, 三是类别与内容的映射表 (类别可以有多个内容,内容也可以)
分类表是这样的:
| CATEGORY_ID | CATEGORY_NAME |<br/>
| 01 | Comedy | <br/>
| 02 | Horror | <br/>
| 03 | Romance | <br/>
内容表是这样的:
| CONTENT_ID | CONTENT_NAME |<br/>
| A | little prince |<br/>
| B | rabbit |<br/>
| C | blahblah |<br/>
和这样的映射表:
| MAPPING_ID | CATEGORY_ID | CONTENT_ID | PRIORITY |<br/>
| aa | 01 | A | 2 |<br/>
| bb | 02 | A | 1 |<br/>
| cc | 01 | B | 5 |<br/>
| dd | 03 | B | 2 |<br/>
| ee | 02 | C | 3 |<br/>
| ff | 03 | C | 4 |<br/>
按CATEGORY
订购组时使用优先级
我想制作这样的交互式网格。
select <br/>
MAPPING_ID,<br/>
PRIORITY,<br/>
CATEGORY_ID,<br/>
CONTENT_ID,<br/>
(select CONTENT_NAME from CONTENT where CONTENT_ID=CONTENT_ID) as content name,<br/>
(select CATEGORY_NAME from CATEGORY where CATEGORY_ID=CATEGORY_ID) as category name<br/>
from MAPPING_TABLE;
我只想编辑该交互式网格中的优先行,
并更新MAPPING_TABLE
元素(仅用于优先级)。
(在真实表中被实际接受的结果)
但是当我在交互式网格中编辑优先级值并单击保存按钮时, 我收到这样的消息:
Ajax call returned server error ORA-20987: APEX - Process ' Save Interactive Grid Data' raised 'ORA-02014: can not use FOR UPDATE statement' while performing row locking. This error can occur when the process issues a SELECT FOR UPDATE on a complex view with an instead-of trigger, to lock the row. Set the process attribute 'Lock Row' to No or PL/SQL Code. - Contact your application administrator. for .
我该如何解决? 提前谢谢你:)
【问题讨论】:
【参考方案1】:你好米罗斯拉夫·格拉穆兹娜,
将关系列(外键)设置为仅查询。 您只能在交互式网格中编辑主表的列
【讨论】:
以上是关于如何在 oracle apex 18 中编辑交互式网格(带有复杂的 sql 查询)?的主要内容,如果未能解决你的问题,请参考以下文章
在将编辑内容保存到数据库之前验证 Oracle Apex 可编辑交互式网格
如何仅使用 sql 在 apex oracle 的交互式网格中实现选择列表以及 oracle APEX 中可用的内容?
Oracle Apex 有用笔记系列 6 - 可编辑交互报告 Editable Interactive Report