DB2 ユニバーサル・データベースでは、 データベースに最初に接続した後の「情報収集」段階で初期 API 呼び出しが戻すデータの量を制限するために使用できるいくつかの CLI/ODBC 初期化キーワードが用意されています。これらのキーワードを設定するには、以下のようにします。
キーワードは、以下のとおりです。
- DBNAME - TABLETYPE - SCHEMALIST - SYSSCHEMA - CLISCHEMA
CLISCHEMA の情報は例外ですが、 これらのキーワードについては CLI/ODBC ヘルプと コール・レベル・インターフェースの手引きおよび解説書 に文書化されています。 この後の部分では、CLISCHEMA の使い方についてのみ説明します。
おって コール・レベル・インターフェースの手引きおよび解説書 に追加される予定になっている CLISCHEMA のドキュメンテーションは、 以下のとおりです。
db2cli.ini Keyword Syntax: CLISCHEMA = clischema Default Setting: No alternatives specified. DB2 CLI/ODBC Settings Tab: Not present.
CLISCHEMA オプションは、 カタログ情報を収集するため DB2 CLI 呼び出しと ODBC 呼び出しが発行されたときに、 SYSIBM (または SYSTEM、QSYS2) ではなく、代替スキーマ、表、 および索引を検索するよう指示します。
たとえば、CLISCHEMA='SERGE' という指定にした場合は、 通常ならシステム表を参照する内部の CLI/ODBC API 呼び出しが、 以下のユーザー表を代わりに参照します。
- SERGE.TABLES - SERGE.COLUMNS - SERGE.SPECIALCOLUMNS - SERGE.TSTATISTICS - SERGE.PRIMARYKEYS - SERGE.FOREIGNKEYS - SERGE.TABLEPRIVILEGES - SERGE.COLUMNTABLES - SERGE.PROCEDURES - SERGE.PROCEDURESCOLUMNS
データベース管理者がこれらのユーザー表を作成していないと、 CLISCHEMA を使うことはできません。
注: | DataPropagator は、CLISCHEMA のサポートを提供しているので、
データベース管理者は以下の 3 つの方法でこのタスクを実行できるようになっています。
|
CLISCHEMA で必要とされる、ユーザー表を設定するユーティリティーは、 CLI コマンド行インターフェースの bldschem サポート・コマンドの形で提供されます。 これは事前に文書化されていませんが、 /samples/cli/db2cli.exe にあります。 bldschem サポート・コマンドを含まない db2cli.exe の文書は、 /samples/cli/INTCLI.DOC にあります。
たとえば、 スキーマ所有者 (作成者) USERID が表名 STAFF を所有する場合に CLISCHEMA='SERGE' の処理に必要なユーザー表の集合をデータベース SAMPLE に作成するには、 db2start を発行してデータベースを ODBC/CLI に登録してから、 次のコマンドを実行します。
db2cli < addstaff.txt
"addstaff.txt" には、以下のスクリプトを入れます。
opt callerror on opt echo on quickc 1 1 sample userid password # # Repeat next line for each table to add. # bldschem 1 SERGE USERID STAFF # # Exit # killenv 1
このスクリプトは、表 USERID.STAFF のシステム・カタログ表データを取り込んだ、 上記のリストに示されている索引付きの表の集合 SERGE.* を作成します。たとえば、SERGE.TABLES には一致したそれぞれの項目の新しい行が取り込まれます。 bldschem 追加呼び出しを発行すると、既存の行が置き換えられ、 既存の SERGE.* 実行可能プログラムに追加されます。
まとめとして、bldschem サポート・コマンドの構文は以下のようになります。
bldschem <handle_number> <value_of_CLISCHEMA> <schema_owner> <table_name>
値の意味は以下のとおりです。
- <handle_number> should be 1 - <value_of_CLISCHEMA> should be the same as the schema name specified with the CLISCHEMA keyword - <schema_owner> is the creator of the table - <table_name> can be the name of a user table, a view, an alias, a synonym, or a system table name. (Wildcard characters are allowed).
この後、db2cli.exe で以下の例を実行すると、 直前の例で作成したユーザー表 SERGE.* に、 FRED と BERT がスキーマ所有者である各表のシステム・カタログ表のデータを反映する行が追加されます。
bldschem 1 SERGE FRED % bldschem 1 SERGE BERT %
この後、さらに CLISCHEMA CLI/ODBC キーワードを SERGE に設定して、 SAMPLE データベースに対して ODBC/CLI アプリケーションの処理をかけると、 システム・カタログ表ではなく SERGE.* 表集合が参照されます。