はじめに
アプリケーションサーバー側(Java)で、次の処理を行う必要が生じた。
データベースサーバ(DB2)の特定のスキーマ.特定のテーブルに登録されている全カラム名を取得したい
DB2を使った開発現場からはすでに離れてしまったのと、当時の走り書きと曖昧な記憶しか残っていないため、参考程度に備忘録を残しておく。
(もしかすると、SQLも細かいところで間違っているかもしれない)
どうするか
スキーマ名とテーブル名を抽出条件として、SYSCAT.COLUMNSからカラム名の情報を取り出す。
SELECT COLNAME FROM SYSCAT.COLUMNS WHERE TABSCHEMA = 'HOGESCHEMA' AND TABNAME = 'TABLENAME'
アプリケーションサーバー側で上記のSQLを実行、検索結果のレコードを1件ずつ取り出していく。