db2look - Db2 統計および DDL 抽出ツール・コマンド

テスト・データベース上に実動データベースのデータベース・オブジェクトを再作成するのに必要な、データ定義言語 (DDL) ステートメントを抽出します。

db2look コマンドは、オブジェクト・タイプごとに DDL ステートメントを生成します。 なお、このコマンドは、SYSTOOLS スキーマのすべてのオブジェクトを無視します。 ただし、ユーザー定義関数とストアード・プロシージャーについては例外です。

テスト・システムに実動システムのデータのサブセットを含めておくと、便利なことが多くあります。 しかし、そのようなテスト・システム用に選択したアクセス・プランが、必ずしも実動システム用に選択したアクセス・プランと同じであるとは限りません。 ただし、db2look ツールを使用すると、実動システムで使用するものとアクセス・プランが類似しているテスト・システムを作成することができます。 このツールを使用して、テスト・データベース上の実動データベースにあるオブジェクトのカタログ統計を複製するのに必要な UPDATE ステートメントを生成することができます。 また、このツールを使用して、UPDATE DATABASE CONFIGURATIONUPDATE DATABASE MANAGER CONFIGURATION、および db2set コマンドを生成することで、テスト・データベース上の照会オプティマイザー関連の構成パラメーターとレジストリー変数の値を、実動データベースでの値に合うように設定できます。

db2look コマンドによって生成される DDL ステートメントは、元の SQL オブジェクトのすべての特性を複製するとは限らないため、生成された DDL ステートメントを必ず確認するようにしてください。 パーティション・データベース環境の表スペースでは、アクティブでないデータベース・パーティションが存在する場合、DDL が完全でない可能性があります。 ACTIVATE DATABASE コマンドを使用することによって、すべてのデータベース・パーティションがアクティブであることを確認してください。

許可

システム・カタログ表に対する SELECT 特権。

表スペース・コンテナー DDL を生成する場合などでは、以下の権限のいずれか 1 つが必要です。
  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
  • DBADM
  • ADMIN_GET_STORAGE_PATHS 表関数に対する EXECUTE 特権

必要な接続

なし

コマンド構文

構文図を読む構文図をスキップするdb2look-dDBname-createdb-printdbcfg-e-ucreator-zschema-tTname-twTname-ct-dp-vVname-h-ap-oFname-a-m-c-r-l1-x-xdep2-xd-xddep-f-tddelimiter-noview-iuserid-wpassword-wlm-wrap-wrapperWname-serverSname-nofed-fedonly-mod-xs-xdirdirname-cor-noimplschema
注:
  • 1 -x パラメーターと -xdep パラメーターを両方とも指定することはできません。
  • 2 -xd パラメーターと -xddep パラメーターを両方とも指定することはできません。

コマンド・パラメーター

-d DBname
照会する実動データベースの別名。 DBname としては、Db2 または Db2 for z/OS® データベースの名前を指定できます。DBnameDb2 for z/OS データベースの場合には、db2look コマンドは以下のステートメントを生成します。
  • 表、索引、ビュー、およびユーザー定義特殊タイプ用の DDL ステートメント
  • 表、列、列分散および索引用の UPDATE 統計ステートメント
これらの DDL および UPDATE 統計は、Db2 データベースには適用できますが、Db2 for z/OS データベースには適用できません。これらのステートメントは、Db2 for z/OS オブジェクトを抽出し、それらを Db2 データベースで再作成する場合に役立ちます。
-createdb
ソース・データベースの作成に使用した CREATE DATABASE コマンドを生成します。
生成された CREATE DATABASE コマンドには、通常 CREATE DATABASE 構文で使用されるパラメーターとオプションが含まれます。ただし、以下のパラメーターは含まれません。
  • ALIAS
  • NUMSEGS
  • RESTRICTIVE
  • WITH
  • AUTOCONFIGURE
-printdbcfg
データベース構成パラメーターの UPDATE DB CFG コマンドを生成します。printdbcfg コマンドは、GET DB CFG コマンドから返される結果と同様の順序で UPDATE DB CFG コマンドを生成します。

AUTOMATIC 値をサポートするパラメーターの場合、生成される UPDATE DB CFG コマンドの末尾に AUTOMATIC を追加する必要がある場合があります。

生成される UPDATE DB CFG コマンドには、以下のパラメーターを除いて、UPDATE DATABASE CONFIGURATION 構文に含まれる通常のパラメーターとオプションがあります。
  • PAGE_AGE_TRGT_MCR
  • DFT_TABLE_ORG
  • STRING_UNITS
  • NCHAR_MAPPING
  • EXTENDED_ROW_SZ
  • CONNECT_PROC
-e
以下のデータベース・オブジェクト用の DDL ステートメントを抽出します。
注: DB2 z/OS からの DDL オブジェクトの生成は、以下のものに制限されます。
  • ユーザー定義関数
  • 索引 (主キー/固有キーを含まない)
  • システム/ビジネス期間テンポラル表
  • 別名
  • 監査ポリシー
  • チェック制約
  • 関数マッピング
  • 関数テンプレート
  • グローバル変数
  • 索引 (パーティション表上のパーティション索引を含む)
  • SPECIFICATION ONLY 指定の索引
  • マテリアライズ照会表 (MQT)
  • ニックネーム
  • 主キー、参照整合性、およびチェック制約
  • 参照整合性制約
  • ロール
  • スキーマ
  • セキュリティー・ラベル
  • セキュリティー・ラベル・コンポーネント
  • セキュリティー・ポリシー
  • 順序
  • サーバー
  • ストアード・プロシージャー
  • 注: SYSIBM.SYSTABLES カタログ表の列 STATISTICS_PROFILE の値は含まれません。
  • トリガー
  • トラステッド・コンテキスト
  • タイプ・マッピング
  • ユーザー・マッピング
  • ユーザー定義特殊タイプ
  • ユーザー定義関数
  • ユーザー定義メソッド
  • ユーザー定義構造化タイプ
  • ユーザー定義トランスフォーム
  • ビュー
  • ラッパー
db2look コマンドによって生成された DDL ステートメントを使用してユーザー定義関数を再作成する場合、その関数を使用できる状態にするには、関数が参照するソース・コード (EXTERNAL NAME 節など) が使用可能でなければなりません。
-u creator
指定された作成者 ID で作成されたオブジェクトに対する DDL ステートメントを生成します。 出力を、指定された作成者 ID で作成されたオブジェクトに制限します。 出力に作動不能オブジェクトは含まれません。 作動不能オブジェクトを表示するには、-a パラメーターを使用します。 -a パラメーターを指定した場合、-u パラメーターは無視されます。
-z schema
指定されたスキーマ名を持つオブジェクトに対する DDL ステートメントを生成します。 出力を、指定されたスキーマ名を持つオブジェクトに制限します。 出力に作動不能オブジェクトは含まれません。 作動不能オブジェクトを表示するには、-a パラメーターを使用します。 -z パラメーターを指定しない場合には、すべてのスキーマ名のオブジェクトが抽出されます。 -a パラメーターを指定した場合、-z パラメーターは無視されます。 また、このパラメーターも、フェデレーテッド DDL ステートメントでは無視されます。
-t Tname1 Tname2 ... TnameN
指定した表とその従属オブジェクトに対する DDL ステートメントを生成します。 表リストに指定された表だけに出力を制限し、ユーザー指定のすべての表の、すべての従属オブジェクトについて、DDL ステートメントを生成します。 表の最大数は 30 です。
従属オブジェクトには、以下のものが含まれます。
  • コメント
  • 索引
  • 主キー
  • ユニーク・キー
  • 別名
  • 外部キー制約
  • チェック制約
  • ビュー
  • トリガー
リストを以下のように指定します。
  • 表名をブランク・スペースで区切ります。
  • 大/小文字の区別のある名前と 2 バイト文字セット (DBCS) 名は、円記号 (¥) および二重引用符 (" ") で囲む必要があります (例えば ¥" MyTabLe ¥")。
  • 複数語の表名は、円記号と 2 セットの二重引用符 (例えば "¥"My Table¥"") で囲むことにより、その対が一語ごとにコマンド行プロセッサー (CLP) で評価されないようにします。 1 セットの二重引用符だけを使用した場合 (例えば "My Table") には、すべての語が大文字に変換され、 db2look コマンドは大文字の表名 (例えば MY TABLE) を探すことになります。

-t パラメーターを -l パラメーターと共に指定すると、パーティション表がサポートされます。

-z schema パラメーターを使用せずに表名を完全修飾するために、schema.table という形式の 2 部から成る表名を使用することができます。 表が持っている従属オブジェクトが、表のスキーマとは異なるスキーマにあるときに、その従属オブジェクトのために生成される DDL ステートメントを必要とする場合には、2 部から成る表名を使用してください。 -z schema パラメーターを使用してスキーマを指定する場合、そのパラメーターは同じ親スキーマを持たない従属オブジェクトを除外するので、そのような従属オブジェクトのための DDL ステートメントは生成されないことになります。

-tw Tname
Tname で指定するパターンに一致する名前を持つ表について DDL ステートメントを生成し、 それらの表のすべての従属オブジェクトについて、DDL ステートメントを生成します。 Tname は、1 つの値だけでなければなりません。 Tname 内の下線文字 (_) は、任意の 1 文字を表します。 パーセント記号 (%) は、ゼロ個以上の文字のストリングを表します。-tw を指定した場合は、-t オプションが無視されます。

-z schema パラメーターを使用せずに表名を完全修飾するために、schema.table という形式の 2 部から成る表名を使用することができます。 表が持っている従属オブジェクトが、表のスキーマとは異なるスキーマにあるときに、その従属オブジェクトのために生成される DDL ステートメントを必要とする場合には、2 部から成る表名を使用してください。 -z schema パラメーターを使用してスキーマを指定する場合、そのパラメーターは同じ親スキーマを持たない従属オブジェクトを除外するので、そのような従属オブジェクトのための DDL ステートメントは生成されないことになります。

-ct
オブジェクト作成時刻に基づいて DDL ステートメントを生成します。 オブジェクト DDL ステートメントは、正しい従属順序では表示されない可能性があります。 -ct パラメーターを指定する場合、db2look コマンドは以下の追加パラメーターだけをサポートします: -e-a-u-z-t-tw-v-l-noview、および -wlm-ct パラメーターを、-z および -t パラメーターと共に使用した場合、db2look コマンドは、表、統計ビュー、列、および索引についての統計を複製するのに必要な UPDATE ステートメントを生成します。
-dp
CREATE ステートメントの前に DROP ステートメントを生成します。 ドロップされるオブジェクトに依存するオブジェクトが存在する場合、その DROP ステートメントは機能しない可能性があります。 例えば、スキーマに依存する表がある場合には、そのスキーマをドロップすることはできません。 また、ユーザー定義タイプまたはユーザー定義関数に依存するタイプ、関数、トリガー、または表がある場合、それらのユーザー定義タイプまたはユーザー定義関数をドロップすることはできません。 型付き表の場合、DROP TABLE HIERARCHY ステートメントはルート表についてのみ生成されます。 表がドロップされると索引、主キーと外部キー、および制約も常にドロップされるため、それらについての DROP ステートメントは生成されません。 RESTRICT ON DROP 属性を持つ表はドロップできません。
-v Vname1 Vname2 ... VnameN
指定したビューに対する DDL ステートメントを生成しますが、それらの従属オブジェクトに対しては生成しません。 ビューの最大数は 30 です。 大/小文字の区別、DBCS、および複数語表名を制御する規則は、ビュー名にも適用されます。-t パラメーターを指定した場合、-v パラメーターは無視されます。

ビューを完全修飾するために、schema.view フォーマットの 2 部から成るビュー名を使用できます。

-h
ヘルプ情報を表示します。 このパラメーターを指定した場合、 他のすべてのパラメーターは無視されます。
-ap
監査ポリシーを他のデータベース・オブジェクトに関連付けるのに必要な AUDIT USING ステートメントを生成します。
-o Fname
出力を Fname ファイルに書き込みます。 拡張子を指定しない場合、拡張子 .sql が使用されます。このパラメーターを指定しない場合、出力は標準出力に書き込まれます。
-a
作動不能オブジェクトを含め、他のユーザーによって作成されたオブジェクトに対する DDL ステートメントを生成します。 例えば、このパラメーターを -e パラメーターと共に指定した場合、データベース内のすべてのオブジェクト用の DDL ステートメントが抽出されます。 このパラメーターを -m パラメーターと共に指定した場合には、データベース内のすべてのユーザー作成の表および索引用の UPDATE 統計ステートメントが抽出されます。

-u および -a パラメーターをいずれも指定しない場合には、USER 環境変数が使用されます。 UNIX オペレーティング・システム上では、この変数を明示的に設定する必要はありません。 ただし、Windows オペレーティング・システムでは、USER 環境変数にデフォルト値はありません。 したがって、SYSTEM 変数にユーザー変数を設定するか、またはセッションに対して set USER=username コマンドを発行する必要があります。

-m
表、統計ビュー、列、および索引についての統計を複製するのに必要な UPDATE ステートメントを生成します。 -m パラメーターを使用することを、模倣モードでの実行といいます。
-c
このオプションを指定した場合、db2look コマンドは、COMMIT、CONNECT、および CONNECT RESET ステートメントを生成しません。 デフォルト・アクションでは、これらのステートメントを生成します。 -m または -e パラメーターも指定されているのでなければ、このオプションは無視されます。
-r
このオプションを -m パラメーターと共に指定する場合、db2look コマンドは RUNSTATS コマンドを生成しません。 デフォルト・アクションでは、RUNSTATS コマンドを生成します。
重要: -m パラメーターを指定した db2look コマンドによって作成されたコマンド・プロセッサー・スクリプトを、別のデータベースに対して実行する場合 (例えば、テスト・データベースのカタログ統計を実動環境のカタログ統計と同じものにする場合)、両方のデータベースで同じコード・セット、テリトリー、照合、および固有性判別を使用していなければなりません。
-l
以下のデータベース・オブジェクト用の DDL ステートメントを生成します。
  • ユーザー定義表スペース
  • ユーザー定義ストレージ・グループ
  • ユーザー定義データベース・パーティション・グループ
  • ユーザー定義バッファー・プール
-x
GRANT ステートメントなどの許可 DDL ステートメントを生成します。
サポートされている許可には、以下のものが含まれます。
  • 列: UPDATE、REFERENCES
  • データベース: ACCESSCTRL、BINDADD、CONNECT、CREATETAB、 CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED_ROUTINE、 DATAACCESS、DBADM、EXPLAIN、IMPLICIT_SCHEMA、LOAD、 QUIESCE_CONNECT、SECADM、SQLADM、WLMADM
  • 免除
  • グローバル変数
  • 索引: CONTROL
  • パッケージ: CONTROL、BIND、EXECUTE
  • ロール
  • スキーマ: CREATEIN、DROPIN、ALTERIN
  • セキュリティー・ラベル
  • シーケンス: USAGE、ALTER
  • ストアード・プロシージャー: EXECUTE
  • 表: ALTER、SELECT、INSERT、DELETE、UPDATE、INDEX、 REFERENCE、CONTROL
  • ビュー: SELECT、INSERT、DELETE、UPDATE、CONTROL
  • ユーザー定義関数 (UDF): EXECUTE
  • ユーザー定義メソッド: EXECUTE
  • 表スペース: USE
  • ワークロード: USAGE
注: -t または -tw パラメーターのいずれかと共に使用した場合、このパラメーターは従属オブジェクトのための許可 DDL ステートメントを生成しません。 親オブジェクトと従属オブジェクトに対して許可 DDL ステートメントを生成する場合は、-xdep パラメーターを使用してください。
-xdep
親オブジェクトと従属オブジェクトに対して許可 DDL ステートメント (例えば GRANT ステートメント) を生成します。 このパラメーターは、-t および -tw パラメーターがいずれも指定されていない場合には、無視されます。 サポートされている許可には、以下のものが含まれます。
  • 列: UPDATE、REFERENCES
  • 索引: CONTROL
  • ストアード・プロシージャー: EXECUTE
  • 表: ALTER、SELECT、INSERT、DELETE、UPDATE、INDEX、 REFERENCE、CONTROL
  • 表スペース: USE
  • ユーザー定義関数 (UDF): EXECUTE
  • ユーザー定義メソッド: EXECUTE
  • ビュー: SELECT、INSERT、DELETE、UPDATE、CONTROL
-xd
オブジェクト作成時に SYSIBM によって許可が付与されたオブジェクト用の許可 DDL ステートメントを含む、許可 DDL ステートメントを生成します。 システム・カタログ表とカタログ・ビューに対しては、許可 DDL は生成されません。
注: -t または -tw パラメーターのいずれかと共に使用した場合、このパラメーターは従属オブジェクトのための許可 DDL ステートメントを生成しません。 親オブジェクトと従属オブジェクトに対して許可 DDL ステートメントを生成する場合は、-xddep パラメーターを使用してください。
-xddep
オブジェクト作成時に SYSIBM によって権限を付与されたオブジェクトの許可 DDL ステートメントを含めて、 親オブジェクトおよび従属オブジェクトに対して、すべての許可 DDL ステートメントを生成します。 このパラメーターは、-t および -tw パラメーターがいずれも指定されていない場合には、無視されます。
-f
照会オプティマイザーに影響を与える構成パラメーターおよびレジストリー変数を抽出します。
-td delimiter
db2look コマンドによって生成される SQL ステートメントのステートメント区切り文字を指定します。 デフォルトの区切り文字はセミコロン (;) です。抽出されたオブジェクトにはトリガーまたは SQL ルーチンが含まれる可能性があるので、-e パラメーターを指定する場合にはこのパラメーターを使用してください。
-noview
CREATE VIEW DDL ステートメントを抽出しないことを指定します。
-i userid
リモート・システムにログオンするために db2look コマンドが使用するユーザー ID を指定します。 このパラメーターと -w パラメーターを指定すると、db2look コマンドをリモート・システム上のデータベースに対して実行することができます。 ローカルとリモートのデータベースが、同じ Db2 for z/OS バージョンを使用する必要があります。
-w password
リモート・システムにログオンするために db2look コマンドが使用するパスワードを指定します。 このパラメーターと -i パラメーターを指定すると、db2look コマンドをリモート・システム上のデータベースに対して実行することができます。 ローカルとリモートのデータベースが、同じ Db2 for z/OS バージョンを使用する必要があります。
-wlm
WLM 固有の DDL 出力を生成します。 この出力は、以下のものに関する CREATE および ALTER ステートメントの生成に使用できます。
  • ヒストグラム
  • サービス・クラス
  • しきい値
  • WLM イベント・モニター
  • ワークロード
  • 作業アクション・セット
  • 作業クラス・セット
-wrap
ルーチン、トリガー、ビュー、PL/SQL パッケージの DDL ステートメントの難読化バージョンを生成します。
-wrapper Wname
指定したラッパーに適用するフェデレーテッド・オブジェクト用の DDL ステートメントを生成します。 生成される可能性のあるフェデレーテッド DDL ステートメントには、以下のものがあります。
  • CREATE FUNCTION ... AS TEMPLATE
  • CREATE FUNCTION MAPPING
  • CREATE INDEX SPECIFICATION
  • CREATE NICKNAME
  • CREATE SERVER
  • CREATE TYPE MAPPING
  • CREATE USER MAPPING
  • CREATE WRAPPER
  • GRANT (ニックネーム、サーバー、索引に対する特権)
ラッパー名を指定しない場合や、複数指定した場合には、エラーが戻されます。
-server Sname
指定したサーバーに適用するフェデレーテッド・オブジェクト用の DDL ステートメントを生成します。 生成される可能性のあるフェデレーテッド DDL ステートメントには、以下のものがあります。
  • CREATE FUNCTION ... AS TEMPLATE
  • CREATE FUNCTION MAPPING
  • CREATE INDEX SPECIFICATION
  • CREATE NICKNAME
  • CREATE SERVER
  • CREATE TYPE MAPPING
  • CREATE USER MAPPING
  • CREATE WRAPPER
  • GRANT (ニックネーム、サーバー、索引に対する特権)
サーバー名を指定しない場合や、複数指定した場合には、エラーが戻されます。
-nofed
フェデレーテッド DDL ステートメントが生成されないことを指定します。 このパラメーターを指定した場合、-wrapper および -server パラメーターは無視されます。
-fedonly
フェデレーテッド DDL ステートメントのみ生成されることを指定します。
-mod
各モジュール、および各モジュールに定義されているすべてのオブジェクト用に DDL ステートメントを生成します。
-xs
XML スキーマと DTD をターゲット・データベースに登録するために必要なすべてのファイルをエクスポートし、それらを登録するための該当するコマンドを生成します。 エクスポートされる XSR オブジェクトのセットは、-u-z-a の各パラメーターによって制御されます。
-xdir dirname
XML 関連ファイルを指定されたパスにエクスポートします。 このパラメーターを指定しない場合、XML 関連ファイルはすべて現行ディレクトリーにエクスポートされます。
-cor
DDL ステートメントを CREATE OR REPLACE 節とともに生成します (ステートメントがその節をもともと含んでいるかどうかに関係なく)。
-noimplschema
暗黙的に作成されたスキーマに関する CREATE SCHEMA DDL ステートメントを生成しないように指定します。 このパラメーターを指定する場合は -e パラメーターも指定する必要があります。

以下の例は、db2look コマンドの使用方法を示しています。
  • データベース DEPARTMENT でユーザー walid によって作成されたオブジェクト用の DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -u walid -e -o db2look.sql
  • ianhe というスキーマ名を持ち、 データベース DEPARTMENT でユーザー walid によって作成されたオブジェクト用の DDL ステートメントを生成します。 出力は、 以下のようにして db2look.sql ファイルに書き込みます。
       db2look -d department -u walid -z ianhe -e -o db2look.sql
  • UPDATE ステートメントを生成して、データベース DEPARTMENT でユーザー walid によって作成されたデータベース・オブジェクトの統計を複製します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -u walid -m -o db2look.sql
  • ユーザー walid によって作成されたオブジェクト用の DDL ステートメントおよび UPDATE ステートメントの両方を生成して、同じユーザーによって作成されたデータベース・オブジェクトについての統計を複製します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -u walid -e -m -o db2look.sql
  • データベース DEPARTMENT ですべてのユーザーによって作成されたオブジェクトの DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -a -e -o db2look.sql
  • すべてのユーザー定義のデータベース・パーティション・グループ、 バッファー・プール、および表スペース用の DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -l -o db2look.sql
  • オプティマイザー関連のデータベースおよびデータベース・マネージャーの構成パラメーター用の UPDATE ステートメント、 およびデータベース DEPARTMENT にあるオプティマイザー関連のレジストリー変数用の db2set コマンドを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -f -o db2look.sql
  • オプティマイザー関連のレジストリー変数と、データベース DEPARTMENT のための以下のステートメントに対して db2set コマンドを生成します。
    • すべてのデータベース・オブジェクトのための DDL ステートメント
    • すべての表と索引についての統計を複製するための UPDATE ステートメント
    • GRANT 許可ステートメント
    • オプティマイザー関連のデータベースおよびデータベース・マネージャーの構成パラメーターに対する UPDATE ステートメント
    • オプティマイザー関連のレジストリー変数に対する db2set コマンド
    • すべてのユーザー定義のデータベース・パーティション・グループ、バッファー・プール、および表スペースに対する DDL ステートメント
    出力は、db2look.sql ファイルに送られます。
       db2look -d department -a -e -m -l -x -f -o db2look.sql
  • オリジナルの作成者によって作成されたオブジェクトも含む、 データベース DEPARTMENT 内のすべてのオブジェクトのすべての許可 DDL ステートメントを生成します。 (この場合には、オブジェクトの作成時に SYSIBM によって権限が付与されました。) 出力は db2look.sql ファイルに送られます。
       db2look -d department -xd -o db2look.sql
  • データベース DEPARTMENT ですべてのユーザーによって作成されたオブジェクトの DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -a -e -td % -o db2look.sql
    出力は CLP によって読み取ることができます。
       db2 -td% -f db2look.sql
  • データベース DEPARTMENT 内のオブジェクト用に、 CREATE VIEW ステートメントを除く DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -e -noview -o db2look.sql
  • 指定した表に関連するデータベース DEPARTMENT 内のオブジェクト用に、DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -e -t tab1 "¥"My TaBlE2¥"" -o db2look.sql
  • フェデレーテッド・データベース FEDDEPART にすべてのオブジェクト (フェデレーテッドおよび非フェデレーテッド) 用の DDL ステートメントを生成します。 フェデレーテッド DDL ステートメントでは、指定されたラッパー FEDWRAP に適用されるもののみが生成されます。 出力が標準出力に書き込まれます。
       db2look -d feddepart -e -wrapper fedwrap
  • 非フェデレーテッド DDL ステートメントのみを含むスクリプト・ファイルを生成します。 以下のシステム・コマンドは、フェデレーテッド・データベース FEDDEPART に対して実行でき、フェデレーテッドではないデータベースの実行時に検出されたような出力を生成するだけです。 出力は、out.sql ファイルに送られます。
       db2look -d feddepart -e -nofed -o out
  • データベース DEPARTMENT の中でスキーマ名が walid であるオブジェクト用の DDL ステートメントを生成します。 組み込み XML スキーマおよび DTD を登録するために必要なファイルは、現行ディレクトリーにエクスポートされます。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -z walid -e -xs -o db2look.sql
  • データベース DEPARTMENT ですべてのユーザーによって作成されたオブジェクトの DDL ステートメントを生成します。 組み込み XML スキーマおよび DTD を登録するために必要なファイルは、/home/ofer/ofer/ ディレクトリーにエクスポートされます。 出力が標準出力に書き込まれます。
       db2look -d department -a -e -xs -xdir /home/ofer/ofer/
  • データベース DEPARTMENT に対する WLM 固有の DDL ステートメントだけを生成します。
    db2look -d department -wlm
  • データベース DEPARTMENT 内のすべてのオブジェクトに対する DDL ステートメントを生成します。
    db2look -d department -wlm -e -l
  • スキーマ TABLES 内の親表 TAB1 と、TAB1 の従属ビュー (データベース DB1 内の VIEWS スキーマにあり VIEW1 と呼ばれる) の両方に対して DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
    db2look -d DB1 -t TABLES.TAB1 -e -o db2look.sql
  • スキーマ TABLES 内の親表 TAB1 と、TAB1 の従属ビュー (データベース DB1 内の VIEWS スキーマにあり VIEW1 と呼ばれる) に対して DDL ステートメントおよび許可 DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
    db2look -d DB1 -t TABLES.TAB1 -e -xdep -o db2look.sql
  • 模倣モードで TABLE1 表に RUNSTATS DDL ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。 このコマンドで使用可能な RUNSTATS 節すべてがサポートされているわけではありません。
    db2look -d DB1 -t TABLE1 -m  -e -o db2look.sql
  • データベース DEPARTMENT の作成に使用した CREATE DATABASE コマンドを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -createdb -o db2look.sql
  • データベース DEPARTMENT から UPDATE DB CFG ステートメントを生成します。 出力は、db2look.sql ファイルに送られます。
       db2look -d department -printdbcfg -o db2look.sql
  • データベース DEPARTMENT の作成に使用した CREATE DATABASE コマンドと、データベースに作成されるオブジェクトの UPDATE DB CFG ステートメントおよび DDL ステートメントを生成します。出力は、db2look.sql ファイルに送られます。
       db2look -d department -createdb -printdbcfg -e  -o db2look.sql

使用上の注意

Windows オペレーティング・システムでは、db2look コマンドは Db2 コマンド・ウィンドウから発行する必要があります。

デフォルトでは、インスタンス所有者には db2look パッケージに対する EXECUTE 特権があります。 その他のユーザーが db2look コマンドを実行する場合、インスタンス所有者は db2look パッケージに対する EXECUTE 特権を付与する必要があります。 db2look パッケージ名を判別するには、以下のようにして db2bfd コマンドを使用できます。
	cd .../sqllib/bnd
	db2bfd -b db2look.bnd
	db2bfd -b db2lkfun.bnd
	db2bfd -b db2lksp.bnd
フェデレーテッド・オブジェクトのための DDL ステートメントを作成するためには、データベース・マネージャー構成でフェデレーテッド・システムを使用可能に設定する必要があります。 db2look コマンドがスクリプト・ファイルを生成した後、そのスクリプトを実行する前に、federated 構成パラメーターを YES に設定する必要があります。 以下の db2look コマンド・パラメーターがフェデレーテッド環境でサポートされます。
-ap
AUDIT USING ステートメントを生成します。
-e
フェデレーテッド・オブジェクト用の DDL ステートメントを生成します。
-f
フェデレーテッド関連情報をデータベース・マネージャー構成から抽出します。
-m
ニックネームの統計を抽出します。
-x
フェデレーテッド・オブジェクトに対する特権を付与する GRANT ステートメントを生成します。
-xd
フェデレーテッド・オブジェクトに対してシステムが付与する特権を追加する DDL ステートメントを生成します。
-wlm
WLM 固有の DDL ステートメントを生成します。

db2look コマンドは、ニックネーム列とリモート表列のデータ型が異なる場合でも、すべてのニックネーム列に対して ALTER TABLE ALTER COLUMN ステートメントを生成します。

出力スクリプトを変更して、CREATE USER MAPPING ステートメントのリモート・パスワードを追加する必要があります。

Db2 ファミリー・インスタンスをデータ・ソースとして定義するのに使用される、これらの CREATE SERVER ステートメントに、AUTHORIZATION および PASSWORD を追加して、db2look コマンド出力スクリプトを変更する必要があります。

-tw オプションの使用法は、次のとおりです。
  • abc で始まる名前を持つ表に関連した、 DEPARTMENT データベース内のオブジェクトの DDL ステートメントを生成し、 その出力を db2look.sql ファイルに送信するには、 次のようにします。
       db2look -d department -e -tw abc% -o db2look.sql
  • 名前の 2 番目の文字が d である表に関連した、 DEPARTMENT データベース内のオブジェクトの DDL ステートメントを生成し、 その出力を db2look.sql ファイルに送信するには、 次のようにします。
       db2look -d department -e -tw _d% -o db2look.sql
  • db2look コマンドは、LIKE 述部を使用して、どの表名が Tname 引数に指定されたパターンに一致するかを評価します。 LIKE 述部を使用する以上、_ 文字または % 文字のいずれかが表名の一部である場合には、_ または % のすぐ前に円記号 (¥) エスケープ文字を置かなければなりません。この場合、_ も % も、Tname 内でワイルドカード文字として使用することはできません。例えば、名前の最初でも最後でもない場所にパーセント (%) 記号を持つ表に関連した、 DEPARTMENT データベース内のオブジェクトの DDL ステートメントを生成するには、 次のようにします。
       db2look -d department -e -tw string¥%string
  • 大/小文字の区別がある名前、DBCS 名、複数語表名および複数語ビュー名は、 円記号および二重引用符の両方で囲む必要があります。 例えば、
    ¥"My TabLe¥"

    マルチバイト文字セット (MBCS) 名または 2 バイト文字セット (DBCS) 名が円記号と二重引用符の区切り文字で囲まれていない場合、小文字と同じバイトが含まれていると大文字に変換され、db2look は変換された名前を使用してデータベース・オブジェクトを探します。その結果、DDL ステートメントは抽出されません。

  • -tw オプションは、-x オプション (GRANT 特権を生成する場合)、-m オプション (表統計および列統計を戻す場合)、および -l オプション (ユーザー定義表スペース、データベース・パーティション・グループ、およびバッファー・プールの DDL を生成する場合) とともに使用できます。 -t オプションを -tw オプションとともに指定すると、-t オプション (およびそれに関連した Tname 引数) が無視されます。
  • フェデレーテッド・データ・ソース上、または Db2 Universal Database on z/OS and OS/390®Db2 for i、または Db2 Server for VSE & VM 上にある表 (およびそれらに関連したオブジェクト) の DDL を生成するために -tw オプションを使用することはできません。
  • -tw オプションは、CLP でのみサポートされています。

パーティション・データベース環境のあるシステムで DDL ステートメントを生成しようとすると、非アクティブ・データベース・パーティション上にある表スペースに関しては、DDL ステートメントの代わりに警告メッセージが表示されます。 すべての表スペースに対して正しい DDL ステートメントが作成されるようにするため、すべてのデータベース・パーティションをアクティブにする必要があります。

Db2 クライアントから、クライアントと同じかそれ以降のリリースのデータベースには db2look コマンドを発行できますが、クライアントからクライアントより前のリリースのデータベースにはこのコマンドは発行できません。例えば、db2look コマンドをバージョン 9.8 クライアントからバージョン 10.1 データベースに発行することはできますが、このコマンドをバージョン 10.1 クライアントからバージョン 9.8 データベースに発行することはできません。

db2look ユーティリティーを呼び出すと、db2look コマンドによって、非コミット・トランザクションを使用して作成されたオブジェクトに対して DDL ステートメントが生成されます。

タイプ配列のセキュリティー・ラベル・コンポーネントのための DDL ステートメントを抽出する場合、抽出されたステートメントが生成するコンポーネントの内部表記 (その配列内のエレメントのエンコード) が、db2look コマンドの発行対象のデータベース内のコンポーネントの内部表記と一致しないことがあります。 この不一致は、セキュリティー・ラベル・コンポーネントに 1 つ以上のエレメントを追加することによってコンポーネントを変更した場合に発生する可能性があります。 そのような場合には、ある表から抽出されて db2look 出力から作成した別の表に移動したデータには、対応するセキュリティー・ラベル値がないので、新しい表の保護が危険にさらされる可能性があります。

パーティション・データベース環境では、指定されたコンテナー・パス ($N 式によって定義されたものを含む) でデータベース管理スペース (DMS) またはシステム管理スペース (SMS) によって管理される表スペースを使ってデータベースが作成された場合、db2look -createdb によって生成される CREATE DATABASE コマンドは、指定した元のパスまたは $N 式だけでなく、各データベース・パーティションのすべてのコンテナー・パスをリストします。 生成されるステートメントを実行する前に、コンテナーの設定を調整する必要があります。 パーティション・データベース環境の自動ストレージ・オプションに制限はありません。

pureScale 環境では、db2look -printdbcfg コマンドを実行するデータベース・メンバーの値によって、db2look -printdbcfg コマンドは UPDATE DATABASE CONFIGURATION 値を生成します。