oracle - 我可以根据 oracle 表单中的主表更改所有列值吗
问题描述
我在 oracle 11g 中创建 POS。在销售表格中,我有两个主表和子表,一列是那些表中存在的“类型”,子表处于表模式有 10 行。现在我要知道的是,当我在主表中更改“类型”时在子表中插入 10 行后,是否有可能根据主表更改子表中的所有值。我正在尝试主表中的列表项,但它只是更改子表的当前值。如何更改子表中的所有值。
解决方案
按照你的说法,有两种选择。
如果提交了更改(即主行和明细行都存储到数据库中),您可以将明细行更新为
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;
推荐阅读
- javascript - 在单个对象上使用键数组有什么好处:值对?
- reactjs - 如何将提取结果导出到另一个文件
- reactjs - 你将如何控制台登录 Gatsby js?
- c# - C# 创建一个列表并在消息框中显示一个项目
- mysql - PHP & MySQL 使用 INNER JOIN、WHERE 和 OR 子句的不同结果(过滤重复项)
- css - 如何调整嵌套 div 的宽度以等于祖先 div 的宽度?
- reactjs - SPA 组件的逆向工程是否存在风险?
- ios - 斯威夫特我怎样才能得到时间02:00 PM和01:00 AM之间的差异
- javascript - jquery 使 html 复选框显示为闪烁的问号和感叹号
- jquery - Datepick 窗口在不同的输入字段下打开