如何在Oracle Apex 18中编辑Interactive Grid(使用复杂的SQL查询)?

时间:2019-05-07 01:57:10

标签: javascript oracle apex

我正在尝试在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 个答案:

答案 0 :(得分:0)

你好Miroslav Glamuzina,

将关系列(外键)设置为仅查询。 您只能在交互式网格中编辑主表的列

enter image description here