【问题标题】:DB2 Z/OS : Find missing data in tableDB2 Z/OS:查找表中缺失的数据
【发布时间】:2018-11-08 00:33:43
【问题描述】:

我有一个表列表,我想找出 db2 Z/OS 中缺少的表。

我可以考虑使用带有硬编码值(UNION ALL)的 CTE,然后在目录表上执行 LEFT OUTER JOIN。

不确定如何硬编码 CTE 中的值。有没有其他更快的方法来查询表的存在,因为我有大量的表需要检查。

谢谢。

【问题讨论】:

    标签: sql db2 mainframe zos


    【解决方案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
    

    您可以对此类处理的结果进行一些最小的更改,以构建像上面这样的最终语句。但这当然不是为了大量的桌子......

    【讨论】:

      猜你喜欢
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      • 2021-06-12
      • 2021-12-02
      • 2022-07-15
      相关资源
      最近更新 更多