JDBCドライバでJavaとDB2のインタフェースをとるプログラムを作成しているときに、特定のデータベース内のすべてのデータ(すべてのテーブルに含まれるすべてのレコード)を取得するプログラムを作成しようとしました。私がプログラムを実行したとき、私はそれがほとんど働いていることを発見しました。しかし、データを収集していないテーブルがいくつかありました。私はIBMのバンドルされたCommand Editorからこれらのテーブルにアクセスし、それらにデータが含まれていることがわかりました。私は、データベースに対してSYSCAT.COLUMNS WHERE TABNAME = 'テーブル'DB2のテーブル型
FROM
SELECT *を実行し、これらのテーブルはSYSCAT.COLUMNS表に何列レコードを持っていたことがわかりました。私はそのテーブル名をスペルミスと信じて、私は、データベースに対して
SELECT * FROM SYSCAT.COLUMNS
を実行し、手動でTABNAME下の表を探しました。私はそれを見つけることができませんでした。私はSYSCAT.TABLES
FROM
SELECT *を実行したとき、私は可能なテーブルの一覧でテーブルを見つけました。しかし、SYSCAT.TABLESでは、TYPE 'A'の表のどれもがSYSCAT.COLUMNSにレコードを持っていないことがわかりました。私はこれについてのIBMの推論が何であるか、またこれらの特定のタイプのテーブルのフィールド名がどのようになっているかを知ることができたと思っていました。
TL; DR DB2データベースの標準SQLクエリを使用してSYSCAT.COLUMNSを使用せずにDB2の列名を取得する方法を教えてください。