Database JUNKY

MySQL,MariaDBを中心としたブログです

テーブルの定義情報(DDL)を出力するシェル

db2上の各テーブルの定義情報を出力する際、db2lookというコマンドを利用しますが、パラメータが多すぎて 正直、いちいち調べるのが面倒なため、shell化しました。下記を、コピペして、cshで実行してください。 なお、このシェルは、データベースの本体内で実行しないと動きません。

【例】 $ csh DB2LOOK.sh DB2ADMIN TABLE1 DB2DB DB2ADMIN ・・・ スキーマ名 TABLE1 ・・・ テーブル名 Db2DB ・・・ データベース名

# DB2LOOK.sh

!/bin/csh

source /home/develop/sqllib/db2cshrc set TODAY=date +"%Y%m%d"

#

DB2 LOOKでテーブルの定義情報DDL

#

ソーステータベース定義

set SDBNAME=$3 # DDLファイルを格納するディレクトリ set WORKPATH=/home/db2user/ddl

if ($1 == "" || $2 == "" || $3 == "") then     echo "Usage: csh $0 schemaname tablename databasename"     exit(1) endif

echo "----- $0 START ----- \c " date

データベースに接続

db2 -v connect to $SDBNAME

DB2LOOK ユティリティ起動

db2look -d $3 -e -z $1 -t $2 -o $WORKPATH/$3.$1.$2_$TODAY.sql

echo "----- $0 END ------- \c "

db2 connect reset

db2 terminate

exit 0