sql - 在 2 个表之间进行比较并插入缺失的记录 pl sql
问题描述
我们有一个 pl sql 过程,在其中我们获取具有多条记录的 xml 数据,首先存储在临时表中,通过验证或在循环中对接收到的 xml 进行一些检查后,我们将插入另一个表,即最终表,一些由于某种原因,很少有记录没有被推送到最终表中,现在在循环结束时的相同 plsql 代码中,我们需要重新检查临时表中的所有行,比如表 A 是否被插入到另一个表 B 中。例如:表 A 中包含列的员工记录
<Employee>
Empid, empname, empdesg, empaddr,empemail, empMobNo
</Employee>
表 B 中包含列的员工记录
<Employee>
EmpNo, empFirstName, EmpLevel, empAddress, empContactDetails, empPhNum
</Employee>
现在我们有 30 条员工记录从源到 plsql 存储在表 A 中,但由于某些原因只有 27 条插入到表 B 中,需要比较表 B 中丢失的记录,然后将它们从表 A 重新插入表 B关于empid/empNo。
请建议如何做到这一点。
解决方案
这就是想法:
INSERT INTO B
SELECT * FROM A WHERE empid IN
(
SELECT empid FROM A
MINUS
SELECT empNo FROM B
);
推荐阅读
- java - jjwt 的更新版本在 maven 存储库中不可用
- php - 如何在没有用户操作的情况下运行预定代码
- javascript - 滚动文本时在背景中显示图像
- database - Mongodb - 当数据库中有更多文档时,$group 阶段需要更长的时间
- javascript - 窗口对象的范围停止工作
- python - pytest如何同时使用getoption和parameterize
- kubernetes - Kubectl 补丁给出:来自服务器的错误:无法从地图恢复切片
- c - 下/上转换中的分段错误
- python - `typing.NamedTuple` 子类中的`super` 在 python 3.8 中失败
- html - 如何在谷歌表格的多行中发布来自 HTML 表单的数据?