如何从设置为从其数据源设置为在Oracle Apex中查看其数据的记录?

问题描述 投票:0回答:2

我的oracle apex应用程序具有一个事件页面,该页面具有v_event视图作为其数据源。该视图包含事件表包含的所有列,并且它还具有club_name列,其中包含组织俱乐部的名称。该报告现在可以正确显示,如我所愿。enter image description here

[当我尝试更新记录时,出现错误,提示'此视图上的数据操作操作不合法'enter image description here

这必须是因为页面的数据源是视图。我该如何解决这个问题?

此外,当我尝试创建新事件时,也会出现错误:

enter image description here

首先,我认为'...非保留键的表之所以出现是因为事件和club_event(俱乐部和事件之间的连接表)表之间的关系是一对多的,如果有多个事件,同一事件行将重复多次。俱乐部组织它。因此,为了解决此问题,我在“ LISTAGG”子句中使用逗号分隔在单个行中为单个事件组合了多个俱乐部名称,如您在上面第一张图片的第二行中所见。但这并不能解决问题。我究竟做错了什么?

顺便说一下,整个页面是oracle apex提供的“带有表单的报告”。因此,我可以通过创建一个新页面并将其数据源设置为事件表来解决此问题。但是我只是想了解是否可以通过视图表创建新事件。

还有最后一个问题。如果表中的值为1而“否”为0,如何将第一张图片中“来自大学”和“来自社区”列中的值映射为“是”?

谢谢。

sql oracle oracle-apex
2个回答
0
投票

据我所记得,这里涉及几个表。即使不是使用Apex,答案也将是创建一个instead of trigger,该视图会在更新视图时触发,然后由触发器主体决定更新哪些表以及如何更新。

[在Apex中,您可以-另外-尝试编写自己的处理插入,更新和删除的过程。换句话说,不要使用自动行处理,因为它不起作用,而是创建您的进程。

从1/0映射到“是/否”:

  • 在(交互式)报告中,使用CASE(或DECODE
  • 以表格的形式,创建单选按钮或选择列表项

0
投票

视图需要与表进行1:1映射,并且具有“ LISTAGG”的列应将属性“ Source> Query Only”设置为“ On”。

© www.soinside.com 2019 - 2024. All rights reserved.