主键中使用lov时,会话项不会更改

时间:2019-05-27 21:43:29

标签: oracle oracle-apex lov

我正在实现一个交互式网格以在表上执行DML操作。

它结合了两列的主键 一个主键列仅显示并引用主表,而另一个主键列我希望具有LOV来选择值。 LOV是动态lov,具有从另一个表中选取的显示和返回值。

插入很好,但是将会话状态项的值设置为一行,并且无论选择哪一行,所有操作都在同一行上执行。

您可以在此处看到示例 https://apex.oracle.com/pls/apex/f?p=128616:2:1964277347439::NO :::

主表名称:样本 详细信息表名称:sample_child

子样本中的

主键:ID和名称 pop lov是在NAME中实现的 LOV值从表中选取:Sample_uncle LOV显示:ID || '-'||名称 LOV返回值:ID

您可以尝试更新sample_child表的blabla列以查看问题。

我不确定如何让您访问实施情况。

我已经尝试了所有我能想到的选项

1 个答案:

答案 0 :(得分:0)

这与您的主键有关,明细表似乎没有正确的键,这就是为什么它总是尝试更新第一个条目的原因,我认为这也是为什么在加载表时标记每一行的原因

主键还会做令人讨厌的事情,即拒绝为空,因为您可以看到是否插入新行,中间的列(即PK)填充为't1001'。

由于您要处理简单的表(而不是一堆连接的表),所以我始终认为最好使用ROWID作为PK。因此,将主表的ROWID设置为PK,将明细表的ROWID设置为PK。并让明细表有一个主表作为您的主表,然后单击明细表中的第一列并为其设置主列。而且我个人也总是隐藏链接的列。

我建议您尽可能使用ROWID,因为它使用起来非常容易,这确实意味着您可能需要进行验证,以防止有人为您的实际PK添加重复的值,但是由于PK位于基础表,他们无论如何都不能输入(但是如果您进行了验证,则错误会更漂亮),而如果该列是PK,则APEX默认情况下将防止重复。

我希望这对您有帮助