2009年12月18日金曜日

間違いだらけのDB2の道 : desc 頂戴~

こんにちは!
テツコさん(♂)です。

OracleのsqlPlusにてよく使ってたのが
テーブルのカラム名を表示してくれる
「desc table名」でした。
DB2を使い始め、
DB2にも「desc」はあるんだろう~と思い
db2cmdにて打ってみたところ帰ってきたのは、
「'desc'は、内部コマンドまたは外部コマンド~~~」の
エラーメッセージのみ-.-





db2では、
「syscat.columns」に80項目にわたり
テーブルの情報が格納されていて、
db2cmdにてバッパァをMAXにしても1行では表示しきれずに
わけわからない表示になってしまうのです。

テツコさん(♂)が知りたいのは、
columnの名, columnの長さ, typeだけなのに。。。
そのために、毎度一々SQL文をうつのも面倒だし、
なにかないかな~とずっと探してた所
ありました~とっても簡単な方法が^^。
できる人はこんな簡単な方法をお使いになっていました。
簡単な方法:
↓↓↓↓↓
・面倒なSQLをバッチファイル(.bat)に作成しておいて、
テーブル名は引数でお渡し!
・バッチファイルは環境変数の「PATH」に指定しておく!
↑↑↑↑↑
それでは、一つ一つやってみましょ~

①バッチファイルの作成:
ファイル名:desc.bat
表示したいのは、キーの有無、colnameの名、type, lengthのみとして
「db2 select keyseq, substr(colname,1,20) as colname,
substr(typename,1,10) as type,length
  from syscat.columns
  where lcase(tabname) = '%1'
 」
(%1は引数のテーブル名)

②バッチファイルの格納場所を「PATH」に追加:
バッチファイルの格納場所が「C:\DB2\BAT」だとしたら

マイコンピュータの右クリック > プロパティ > 詳細設定
> 環境変数 > システム環境変数の 「PATH」 の最後に

「;C:\DB2\BAT」

を追加します。

③db2cmdを起動して

「desc テーブル名」とうって、Enterキーを静か~に押すと
テーブルの情報が表示されてしまうので~す^^。

よしよ~し(^-^)


今日も金曜日、

みなさん~

Have A Nice Weekend ~~~