首页 > 解决方案 > 我可以根据 oracle 表单中的主表更改所有列值吗

问题描述

我在 oracle 11g 中创建 POS。在销售表格中,我有两个主表和子表,一列是那些表中存在的“类型”,子表处于表模式有 10 行。现在我要知道的是,当我在主表中更改“类型”时在子表中插入 10 行后,是否有可能根据主表更改子表中的所有值。我正在尝试主表中的列表项,但它只是更改子表的当前值。如何更改子表中的所有值。

标签: oracleoracle11goracleforms

解决方案


按照你的说法,有两种选择。

如果提交了更改(即主行和明细行都存储到数据库中),您可以将明细行更新为

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;

另一种是遍历详细信息块并逐行修改项目:

go_block('detail_block');
first_record;
loop
  :detail_block.type := :master_block.type;
  exit when :system.last_record = 'true';
  next_record;
end loop;

推荐阅读