DB2 Z/OS:查找表中缺失的数据
Posted
技术标签:
【中文标题】DB2 Z/OS:查找表中缺失的数据【英文标题】:DB2 Z/OS : Find missing data in table 【发布时间】:2018-11-08 00:33:43 【问题描述】:我有一个表列表,我想找出 db2 Z/OS 中缺少的表。
我可以考虑使用带有硬编码值(UNION ALL)的 CTE,然后在目录表上执行 LEFT OUTER JOIN。
不确定如何硬编码 CTE 中的值。有没有其他更快的方法来查询表的存在,因为我有大量的表需要检查。
谢谢。
【问题讨论】:
【参考方案1】:将您的庞大列表加载到某个中间表中,例如使用 (CREATOR VARCHAR(128), NAME VARCHAR(128)) 字段。 至于硬编码值。试试这个:
select v.*
from (
select 'SYSIBM', 'SYSTABLES' from sysibm.sysdummy1
union all
select 'SYSIBM', 'SYSCOLUMNSS' from sysibm.sysdummy1
-- union all
--select ...
) v (creator, name)
where not exists (
select 1
from sysibm.systables t
where t.creator=v.creator and t.name=v.name
);
您可以使用一些文本处理实用程序(如 sed)来生成如下字符串:
select 'SYSIBM', 'SYSTABLES' from sysibm.sysdummy1 union all
来自您输入文件中的内容:
SYSIBM,SYSTABLES
您可以对此类处理的结果进行一些最小的更改,以构建像上面这样的最终语句。但这当然不是为了大量的桌子......
【讨论】:
以上是关于DB2 Z/OS:查找表中缺失的数据的主要内容,如果未能解决你的问题,请参考以下文章