用于检索给定模式的所有表名的 DB2 查询

新手上路,请多包涵

我只是在寻找一个简单的查询来选择给定模式的所有表名。

例如,我们的数据库有 100 多个表,我需要找到任何包含子字符串“CUR”的表。拥有所有表格后,我可以使用 like 命令。

原文由 Ben 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 752
2 个回答
--for DB2/z
    select * from sysibm.systables
    where owner = 'SCHEMA'
    and name like '%CUR%'
    and type = 'T';

--for DB2/LUW
    select * from sysibm.systables
    where CREATOR = 'SCHEMA'
    and name like '%CUR%'
    and type = 'T';

这将为您提供在 SCHEMA 模式中包含 CUR 的所有表。

有关 SYSIBM.SYSTABLES 表的更多详细信息,请参见 此处。如果您看一下左侧的导航窗格,您可以获得各种精彩的 DB2 元数据。

请注意,此链接适用于大型机 DB2/z。根据上面的第二个查询,DB2/LUW(Linux/UNIX/Windows 之一)的列略有不同。

如果您不使用这两种方法,则应检查 IBM 文档以了解您的特定变体。

原文由 paxdiablo 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是我的工作解决方案:

 select tabname as table_name
from syscat.tables
where tabschema = 'schema_name' -- put schema name here
      and type = 'T'
order by tabname

原文由 dkero 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进