【发布时间】:2020-05-11 22:32:19
【问题描述】:
我正在 oracle 11g 中创建 POS。在销售表格中,我有两个主表和子表,一列是那些表中存在的“类型”,子表处于表模式有 10 行。 现在我要知道的是,当我在主表中更改“类型”时在子表中插入 10 行后,是否有可能根据主表更改子表中的所有值。 我正在尝试主表中的列表项,但它只是更改子表的当前值。如何更改子表中的所有值。
【问题讨论】:
标签: oracle oracle11g oracleforms
我正在 oracle 11g 中创建 POS。在销售表格中,我有两个主表和子表,一列是那些表中存在的“类型”,子表处于表模式有 10 行。 现在我要知道的是,当我在主表中更改“类型”时在子表中插入 10 行后,是否有可能根据主表更改子表中的所有值。 我正在尝试主表中的列表项,但它只是更改子表的当前值。如何更改子表中的所有值。
【问题讨论】:
标签: oracle oracle11g oracleforms
按照你的说法,有两种选择。
如果提交了更改(即主行和明细行都存储到数据库中),您可以将明细行更新为
update detail_table d set
d.type = :master_block.type
where d.foreign_key_column = :master_block.primary_key_item;
然后重新查询详细块为
go_block('detail_block');
execute_query;
另一种是遍历detail块,逐行修改item:
go_block('detail_block');
first_record;
loop
:detail_block.type := :master_block.type;
exit when :system.last_record = 'true';
next_record;
end loop;
【讨论】: