我正在編寫一個JDBC程序來獲取某些數據庫元數據信息,並且我想要查詢給定模式中所有索引的一部分。 我看了一些JDBC API並從DatabaseMetaData
接口,可以使用像getTables
這樣的方法來獲取給定模式的所有表。我試圖找到類似的東西(或使用某些API的組合來編寫)以獲取像架構上的所有索引,視圖等信息。有沒有辦法得到它?例如,對於索引有一個方法 - getIndexInfo
但對於模式中的每個表,我需要調用這個方法。我的數據庫是db2。獲取給定模式的所有索引信息 - db2
回答
我會使用DB2 Catalog Views來獲取信息。
舉個例子,如果你希望所有表的索引,你會使用這樣的查詢(我假設你正在使用DB2在Linux/Unix/Windows的位置):
SELECT *
FROM SYSCAT.INDEXES
WHERE tabname = @tablename
AND tabschema = @schema
ORDER BY indname
不建議您使用SYSIBM視圖,因爲它們通常在DB2版本之間更改。記錄的目錄視圖位於SYSCAT模式中(鏈接指向) - 它們保證更加穩定和向後兼容。 – mustaccio
糟糕。猜猜我正在用來查詢DB2 for z/OS(它甚至沒有SYSCAT模式)目錄視圖。 ':)'我改變它使用SYSCAT視圖。 – bhamby
謝謝.. Syscat正在工作..讓我嘗試更多使用不同的產品哪個Syscat有.. – user1588737
我嘗試了一些方法後執行了以下操作 1.寫了一個JDBC調用的包裝來簡化我的工作。 2.查詢的SYSCAT模式等
select tabname from syscat.TABLES where tabschema = ?
- 寫了一些Java工具來比較2組由2模式返回的結果的和也做了一些手工比較。
如果我找到更好的解決方案,將它張貼。非常感謝所有的幫助。
從Syscat模式獲取數據不正確。在ZOS環境中,可能存在或不存在Syscat,因爲在安裝時您可以選擇不安裝Syscat模式。所以更好地使用Sysibm架構。
- 1. 獲取沒有信息模式的FTS索引名稱
- 2. 列出特定模式中的所有索引
- 3. 有關JDT索引格式的信息
- 4. 獲取對給定PowerShell模塊的所有引用
- 5. 如何獲取字符串中模式的所有索引?
- 6. DMV獲取索引配置信息
- 7. 如何在Oracle中獲取有關索引和表所有者的信息?
- 8. 獲取facebook頁面的所有信息
- 9. Cocoa - 獲取Adress Book的所有信息
- 10. buildLoadSettings,獲取有關引用的信息
- 11. 獲取第一個沒有索引的信息的元素
- 12. 從解析器數據中獲取特定索引的信息
- 13. 如何獲取有關係統視圖索引的信息
- 14. 獲取索引給定的行和列
- 15. 如何獲取有關過程db2正文的信息?
- 16. 獲取帶有所有獲取信息的PHP頁面名稱
- 17. LINQ查詢以獲取ASP.NET中給定數據庫的所有對象信息?
- 18. 在zend中獲取所有模型的詳細信息
- 19. Zend_Auth的沒有給所有信息
- 20. 獲取所有索引陣列的笨
- 21. 獲取「無法獲取映射。你有索引匹配模式」
- 22. 獲取特定視圖中引用的表的索引統計信息
- 23. Drupal獲取模塊信息?
- 24. 取回索引信息的PostgreSQL 8.4
- 25. 信息抽取,索引和搜索PDF,Word和MongoDB的具有
- 26. 如何從引用搜索引擎獲取查詢信息
- 27. 獲取所有非聚集索引
- 28. Kibana - 獲取所有索引列表
- 29. C#Lucene獲取所有索引
- 30. 獲取給定XmlNode的所有後代
使用JDBC提供的接口:no。如果您不想遍歷所有表併爲每個表調用'getIndexInfo',則可能需要直接查詢DB2的信息模式。 –