获取给定模式的所有索引信息 - db2

时间:2013-10-08 18:20:24

标签: java jdbc db2

我正在编写一个JDBC程序来获取一些数据库元数据信息,作为其中的一部分,我想查询给定模式中的所有索引。 我查看了一些JDBC API,并且从DatabaseMetaData接口,可以使用getTables之类的方法来获取给定模式的所有表。我试图找到类似的东西(或使用一些API的组合写)来获取模式上的所有索引,视图等信息。有办法搞定吗?例如,对于索引,有一个方法 - getIndexInfo但是对于模式中的每个表,我需要调用此方法。我的数据库是db2。

3 个答案:

答案 0 :(得分:1)

我会使用DB2 Catalog Views来获取信息。

例如,如果你想要一个表的所有索引,你可以使用这样的查询(我假设你在Linux / Unix / Windows上使用DB2):

SELECT *
FROM SYSCAT.INDEXES
WHERE tabname   = @tablename 
  AND tabschema = @schema
ORDER BY indname

答案 1 :(得分:0)

尝试了一些方法之后,我做了以下几点 1.编写了一个围绕JDBC调用的包装器来简化我的工作。 2.查询syscat架构,如

select tabname from syscat.TABLES where tabschema = ?
  1. 编写了一些java实用程序来比较2模式返回的2组结果,并进行了一些手动比较。
  2. 如果我找到更好的解决方案,会发布。非常感谢所有的帮助。

答案 2 :(得分:0)

从Syscat架构获取数据不正确。在ZOS环境中,Syscat可能存在也可能不存在,因为在安装时您可以选择不安装Syscat架构。所以最好使用Sysibm架构。