我正在编写一个 JDBC 程序来获取一些数据库元数据信息,作为其中的一部分,我想查询给定模式中的所有索引。我查看了一些 JDBC API 和DatabaseMetaData
接口,可以使用诸如 getTables
获取给定模式的所有表之类的方法。我试图找到类似的东西(或使用某些 API 的组合编写)来获取模式上的所有索引、视图等信息。有没有办法得到它?例如,对于索引,有一个方法——getIndexInfo
但是对于模式中的每个表,我都需要调用这个方法。我的数据库是 db2。
问问题
1638 次
3 回答
1
我将使用DB2 Catalog Views来获取信息。
例如,如果您想要一个表的所有索引,您将使用这样的查询(我假设您在这里使用的是 Linux/Unix/Windows 上的 DB2):
SELECT *
FROM SYSCAT.INDEXES
WHERE tabname = @tablename
AND tabschema = @schema
ORDER BY indname
于 2013-10-08T19:04:20.337 回答
0
在尝试了一些方法后,我做了以下事情 1. 围绕 JDBC 调用编写了一个包装器以简化我的工作。2.查询syscat模式如
select tabname from syscat.TABLES where tabschema = ?
- 编写了一些 java 实用程序来比较 2 模式返回的 2 组结果,并进行了一些手动比较。
如果我找到更好的解决方案,将发布它。非常感谢所有的帮助。
于 2013-11-27T15:17:11.480 回答
0
从 Syscat 模式获取数据不正确。在 ZOS 环境中 Syscat 可能存在也可能不存在,因为在安装时您可以选择不安装 Syscat 模式。所以最好使用 Sysibm 模式。
于 2014-05-30T08:39:03.333 回答