在編寫一個通過JDBC驅動程序連接Java和DB2的程序時,我試圖編寫一個程序來檢索給定數據庫中的所有數據(包含在所有表中的所有記錄)。當我運行程序時,我發現它大部分工作。但是,有幾張表格沒有收集數據。我從IBM捆綁的Command Editor訪問這些表,發現它們包含數據。我跑DB2中的表類型
SELECT * FROM SYSCAT.COLUMNS其中tabname = '表'
針對數據庫後發現,這些表曾在SYSCAT.COLUMNS表中沒有列的記錄。相信我拼錯了表名,我跑
SELECT * FROM SYSCAT.COLUMNS
針對數據庫和手動看着桌子底下TABNAME。我找不到。當我跑
SELECT * FROM SYSCAT.TABLES
我發現表中可用表的列表。但是,在SYSCAT.TABLES中,我還發現沒有任何類型'A'的表在SYSCAT.COLUMNS中有任何記錄。我在想,IBM的推理是什麼,以及我如何才能找出這些特定類型的表的字段名稱。
TL; DR如何在不使用SYSCAT.COLUMNS的情況下通過對DB2數據庫的標準SQL查詢獲取DB2的列名?