Database JUNKY

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

EXPORTを利用する

DB2 EXPORTシェル

前回も、説明したかと思いますのが、db2のコマンド(コマンドのオプション)を覚えるのは、性格的なものもあるのですが面倒です。 個人的には、これは、必須だろと思うコマンド以外はほとんど頭に入らないので、もっと頭に入る人に業務はお願いしちゃったりしています。 日々の運用の中で、EXPORTの使うファイル形式は、IXFと、CSVですね。IXFは、IBM DB2のファイルフォーマットです。当然のことながらこっちのほうが、DB2間の処理としては 扱いやすいです。

【一般的な書式】 オンラインマニュアルを見ればわかりますが、

DB2 EXPORT TO [エクスポートファイル名].IXF OF IXF MESSAGES [エクスポートファイル名].log SELECT * FROM [テーブル名]

が一般的な書式です。ファイル形式は、先ほどもいったとおり、IXFと、DEL(CSV)形式の指定があることだけ覚えておけばよいでしょう。 また、SQL記述部はSQLなので当然のことながら、JOINもできますし、抽出条件(WHERE)なども指定することができます。VIEWもできます。

まずは簡単に、CSVとIXFのファイルを切り替えられるように、shellで作ってみました。 #!/bin/csh source /home/db2admin/sqllib/db2cshrc # 設定パラメータ ############################################# # データベース名 set DBNAME=DB2DB” # エクスポート先のディレクトリの選択 set EXPPATH=”/home/db2admin/export” # メッセージファイルのディレクトリの選択 set MSGPATH=”/home/db2admin/msg” ############################################################## db2 connect to ${DBNAME} db2 EXPORT TO ${EXPPATH}/$1.$2.${FILEMODE} OF ${FILEMODE} MESSAGES ${MSGPATH}/$1.$2.exp.msg SELECT * FROM $1.$2 FOR READ ONLY WITh UR db2 connect reset set ERRORLEVEL=”$?” if ($ERRORLEVEL != “0″) then   echo “エクスポートでエラーが発生しました。”   exit(-1) else   echo “エクスポート正常終了”   exit 0 endif