DB2 Version 9.7 for Linux, UNIX, and Windows

コマンド行プロセッサーのオプション

CLP コマンド・オプションは、 コマンド行プロセッサー DB2OPTIONS 環境変数 (大文字) を設定するか、 またはコマンド行フラグを使用することにより指定できます。

ユーザーは、DB2OPTIONS を使用して、 セッション全体に適用されるオプションを設定することができます。

オプション・フラグの現在の設定および DB2OPTIONS の値を表示するには、 LIST COMMAND OPTIONS を使用します。 オプションの設定を対話式入力モードまたはコマンド・ファイルから変更するには、 UPDATE COMMAND OPTIONS を使用します。

コマンド行プロセッサーは、以下の手順でオプションを設定します。
  1. デフォルト・オプションを設定します。
  2. DB2OPTIONS を読み取って、デフォルトを一時変更します。
  3. コマンド行を読み取って、DB2OPTIONS を一時変更します。
  4. UPDATE COMMAND OPTIONS からの入力を、最終的な対話式一時変更として受け入れます。

表 1 に CLP オプション・フラグを要約してあります。 これらのオプションは、どのような順序や組み合わせでも指定することができます。 オプションをオンにするには、対応するオプション文字の前に負符号 (-) を付けます。 オプションをオフにする場合、 オプション文字の接頭部に負符号を付けオプション文字の後にも別の負符号を付けるか、 またはオプション文字の接頭部に正符号 (+) を付けてください。 例えば、-c で auto-commit オプションはオンになり、 -c- または +c でオフになります。 これらのオプション文字では大文字と小文字は区別されず、 -a-A は同じものと見なされます。

表 1. CLP コマンド・オプション
オプション・フラグ 説明 デフォルト設定
-a コマンド行プロセッサーは SQLCA データを表示します。 オフ
-c コマンド行プロセッサーは SQL ステートメントを自動的にコミットします。 ON
-d このオプションは、コマンド行プロセッサーが XML データの XML 宣言を検索して表示するよう指示します。 オフ
-e{c|s} コマンド行プロセッサーは SQLCODE または SQLSTATE を表示します。 この 2 つのオプションは相互に排他的です。 オフ
-f filename コマンド行プロセッサーは、 コマンド入力を標準入力ではなくファイルから読み取ります。 オフ
-i このオプションは、コマンド行プロセッサーが、適切な字下げを使って XML データを「整形印刷」するよう指示します。このオプションは、XQuery ステートメントの結果セットにのみ影響を与えます。 オフ
-l filename コマンド行プロセッサーはコマンドを履歴ファイルに記録します。 オフ
-m このオプションは、コマンド行プロセッサーが、INSERT/DELETE/UPDATE/MERGE で影響を受ける行の数を印刷するよう指示します。 オフ
-n 単一の区切りトークン内の改行文字を除去します。 このオプションを指定しない場合、改行文字はスペースで置換されます。 このオプションは、-t オプションと共に使用する必要があります。 オフ
-o コマンド行プロセッサーは、出力データおよびメッセージを標準出力に表示します。 ON
-p コマンド行プロセッサーは、対話型入力モードのときにコマンド行プロセッサー・プロンプトを表示します。 ON
-q このオプションは、コマンド行プロセッサーが、単一または二重引用符で区切られているストリング内の空白文字および改行文字を保持するよう指示します。オプション qON のとき、オプション n は無視されます。 オフ
-r filename コマンド行プロセッサーは、コマンドが生成したレポートをファイルに書き込みます。 オフ
-s コマンド行プロセッサーは、バッチ・ファイルまたは対話式モードでコマンドを実行中にエラーが発生した場合、 実行を停止します。 オフ
-t コマンド行プロセッサーはセミコロン (;) をステートメント終了文字として使用します。 オフ
-tdx または -tdxx このオプションは、コマンド行プロセッサーx または xx をステートメント終了文字 (長さは 1 文字または 2 文字) として定義し、使用するよう指示します。 オフ
-v コマンド行プロセッサーはコマンド・テキストを標準出力にエコーさせます。 オフ
-w このオプションは、コマンド行プロセッサーが FETCH/SELECT 警告メッセージを表示するよう指示します。 ON
-x コマンド行プロセッサーは列名などのヘッダーなしでデータを戻します。 このフラグは、すべてのコマンドには影響を与えません。 これは、SQL ステートメント、および SQL ステートメントに基づくいくつかのコマンド (LIST TABLES など) に適用されます。 オフ
-z filename コマンド行プロセッサーはすべての出力をファイルにリダイレクトします。 これは -r オプションと似ていますが、 出力の他にメッセージやエラー・コードも含まれます。 オフ

AIX® コマンド
   export DB2OPTIONS='+a -c +ec -o -p'
を実行すると、このセッションのデフォルト設定は以下のようになります。
   Display SQLCA   - off
   Auto Commit     -  on
   Display SQLCODE - off
   Display Output  -  on
   Display Prompt  -  on
以下に、これらのオプションの詳細を説明します。
SQLCA データ表示オプション (-a):
DB2® コマンドまたは SQL ステートメントを実行した後で、 SQLCA データを標準出力に表示します。 SQLCA データが、エラーまたは完了メッセージの代わりに表示されます。

このコマンド・オプションのデフォルト設定は OFF です (+a または -a-)。

-o および -r オプションは -a オプションに影響します。 詳細については、オプションの説明を参照してください。

自動コミット・オプション (-c):
このオプションは、 各コマンドまたはステートメントを独立して処理するかどうかを指定します。 ON (-c) に設定する場合、 各コマンドまたはステートメントは自動的にコミットされるかまたはロールバックされます。 コマンドまたはステートメントが正常に処理された場合、それ自体、 およびそれ以前に自動コミット OFF (+c または -c-) で発行され、 正常に発行されたコマンドおよびステートメントがすべてコミットされます。 しかし、コマンドまたはステートメントが失敗した場合、それ自体、 およびそれ以前に自動コミット OFF で発行され、 正常に発行されたコマンドおよびステートメントはすべてロールバックされます。 OFF (+c または -c-) に設定した場合、 COMMIT または ROLLBACK を明示的に発行しなければなりません。 そうしないと、次に自動コミット ON (-c) でコマンドを発行したときに、 COMMIT または ROLLBACK のどちらかのアクションが起こります。

このコマンド・オプションのデフォルト設定は ON です。

自動コミット・オプションは、他のコマンド行プロセッサー・オプションに影響することはありません。

例: 以下のシナリオを考えてみましょう。
  1. db2 create database test
  2. db2 connect to test
  3. db2 +c "create table a (c1 int)"
  4. db2 select c2 from a
ステップ 4 の SQL ステートメントは、表 A に C2 という名前の列がないために失敗します。 そのステートメントは自動コミット ON (デフォルト) で発行されたので、 ステップ 4 のステートメントだけでなく、ステップ 3 のステートメントもロールバックされます。 ステップ 3 が自動コミット OFF で発行されているためです。 コマンド
            db2 list tables         
を実行しても、空のリストが戻されます。
XML 宣言オプション (-d):

-d オプションにより、コマンド行プロセッサーが、XML データの XML 宣言を検索して表示するかどうかが決まります。

ON (-d) に設定した場合、XML 宣言は検索されて表示されます。 OFF (+d または -d-) に設定した場合、XML 宣言は検索および表示されません。 このコマンド・オプションのデフォルト設定は OFF です。

XML 宣言オプションは、他のコマンド行プロセッサー・オプションには影響しません。

SQLCODE/SQLSTATE 表示オプション (-e):
-e{c|s} オプションを指定すると、 コマンド行プロセッサーは SQLCODE (-ec) または SQLSTATE (-es) を標準出力に表示します。オプション -ec および -es は、CLP 対話式モードでは無効です。

このコマンド・オプションのデフォルト設定は OFF です (+e または -e-)。

-o および -r オプションは、-e オプションに影響します。 詳細については、オプションの説明を参照してください。

SQLCODE/SQLSTATE 表示オプションは他のコマンド行プロセッサー・オプションには影響しません。

例: AIX 上で実行しているコマンド行プロセッサーから SQLCODE を検索するには、次のように入力します。
               sqlcode=`db2 -ec +o db2-command`            
入力ファイルからの読み取りオプション (-f):
-f filename オプションを指定すると、 コマンド行プロセッサーは標準入力ではなく指定したファイルから入力を読み取るようになります。 filename は絶対ファイル名または相対ファイル名で、ファイルまでのディレクトリー・パスを含むことができます。 ディレクトリー・パスを指定していない場合、現行ディレクトリーが使用されます。

ファイル入力オプションを指定して CLP を呼び出すと、自動的に CLIENT APPLNAME 特殊レジスターが CLP filename に設定されます。

他のオプションと一緒にオプション -f を指定する場合には、 オプション -f は最後に指定する必要があります。 以下に例を示します。
      db2 -tvf filename   

db2 -tvf filename コマンドを使用して CLP スクリプト・ファイルを実行すると、CLIENT APPLNAME 特殊レジスターが CLP filename に設定されます。 次に実行するコマンドによって、特殊レジスター CLIENT APPLNAME および CLIENT ACCTNG は、db2 -tvf filename コマンドが発行される前の古い値にリセットされます。 次に実行するコマンドが db2 terminate の場合、または filename 内の最後のステートメントが terminate の場合には、これらの特殊レジスターはリセットされません。 これは、どのバッチ・ジョブが現在実行中であるかをモニターし、CLP ワークロードを区別するのに有用です。

このオプションは、対話式モード内では変更できません。

このコマンド・オプションのデフォルト設定は OFF です (+f または -f-)。

コマンド処理は QUIT または TERMINATE が出されるまで、またはファイルの終わりまで続行されます。

このオプションとデータベース・コマンドの両方を指定すると、 コマンド行プロセッサーはコマンドをまったく処理せずにエラー・メッセージを戻します。

コメント文字 -- で始まる入力ファイル行は、 コマンド行プロセッサーによりコメントとして処理されます。 行の最初の非ブランク文字はコメント文字でなければなりません。

(= で開始する入力ファイル行は、コメント・ブロックの開始として処理されます。 =) で終了する行は、コメント・ブロックの終了を知らせます。 (= で開始して =) で終了する入力行のブロックは、 連続したコメントとしてコマンド行プロセッサーによって処理されます。 (= の前および =) の後には、スペースを置くことが許可されています。 コメントをネストさせることも可能で、ステートメント内にネストさせて使用することもできます。 コマンド終了文字 (;) は、=) の後では使用できません。

-f filename オプションを指定すると、 -p オプションは無視されます。

入力ファイルからの読み取りオプションは、他のコマンド行プロセッサー・オプションには影響しません。

-t オプションまたは EOF で指定されていない限り、デフォルトの終了文字は、改行文字の 1 つです。

整形印刷オプション (-i):

-i オプションは、適切な字下げを使って XML データを「整形印刷」するようにコマンド行プロセッサーに指示します。このオプションは、XQuery ステートメントの結果セットにのみ影響を与えます。

このコマンド・オプションのデフォルト設定は OFF です (+i または -i-)。

整形印刷オプションは、他のコマンド行プロセッサー・オプションには影響しません。

履歴ファイルへのコマンドのログ・オプション (-l):
-l filename オプションを指定すると、 コマンド行プロセッサーは指定したファイルにコマンドのログを記録します。 この履歴ファイルには、実行したコマンドとその完了状況が記録されます。 filename は絶対ファイル名または相対ファイル名で、ファイルまでのディレクトリー・パスを含むことができます。 ディレクトリー・パスを指定していない場合、現行ディレクトリーが使用されます。 指定したファイルまたはデフォルトのファイルが既に存在している場合、 そのファイルに新しいログ項目が追加されます。
他のオプションと一緒にオプション -l を指定する場合には、 オプション -l は最後に指定する必要があります。 以下に例を示します。
   db2 -tvl filename

このコマンド・オプションのデフォルト設定は OFF です (+l または -l-)。

履歴ファイルへのコマンドのログ・オプションは、他のコマンド行プロセッサー・オプションには影響しません。

影響を受ける行数の表示オプション (-m):

-m オプションにより、コマンド行プロセッサーは、 INSERTDELETEUPDATE、 または MERGE で影響を受ける行の数を印刷するかどうかを決定します。

ON (-m) に設定した場合、INSERT/DELETE/UPDATE/MERGE のステートメントで 影響を受ける行数が表示されます。 OFF (+m または -m-) に設定した場合、影響を受ける行数は表示されません。 その他のステートメントでは、このオプションは無視されます。 このコマンド・オプションのデフォルト設定は OFF です。

-o および -r オプションは -m オプションに影響します。 詳細については、オプションの説明を参照してください。

改行文字除去オプション (-n):
単一の区切りトークン内の改行文字を除去します。 このオプションを指定しない場合、改行文字はスペースで置換されます。 このオプションは、対話式モード内では変更できません。

このコマンド・オプションのデフォルト設定は OFF です (+n または -n-)。

このオプションは、-t オプションと共に使用する必要があります。 詳細については、オプションの説明を参照してください。

出力表示オプション (-o):
-o オプションを指定すると、 コマンド行プロセッサーは出力データおよびメッセージを標準出力に送信します。

このコマンド・オプションのデフォルト設定は ON です。

対話式モード開始情報は、このオプションによって影響を受けることはありません。 出力データは、ユーザー指定コマンドからの実行結果のレポート出力、 および SQLCA データ (要求した場合) で構成されます。

以下のオプションは、+o オプションの影響を受けることがあります。
  • -r filename: 対話式開始情報は保存されません。
  • -e: +o を指定しても、 SQLCODE または SQLSTATE が標準出力に表示されます。
  • -a: +o を指定しても、影響を受けません。 -a+o および -rfilename を指定すると、 SQLCA 情報がファイルに書き込まれます。

-o-e オプションの両方を指定すると、 データおよび SQLCODE または SQLSTATE のどちらかが画面に表示されます。

-o-v オプションの両方を指定すると、 データが表示され、発行した各コマンドのテキストが画面にエコーされます。

出力表示オプションは、他のコマンド行プロセッサー・オプションには影響しません。

DB2 対話式プロンプト表示オプション (-p):
-p オプションを指定すると、ユーザーが対話式モードになっているときに、 コマンド行プロセッサーコマンド行プロセッサー・プロンプトを表示します。

このコマンド・オプションのデフォルト設定は ON です。

コマンドがコマンド行プロセッサーにパイプ接続されているときには、プロンプトをオフにすると便利です。 例えば、CLP コマンドを含むファイルを、次のコマンドを実行することによって実行できます。
   db2 +p < myfile.clp

-p オプションは、 -f filename オプションを指定すると無視されます。

DB2 対話式プロンプト表示オプションは、他のコマンド行プロセッサー・オプションには影響しません。

空白文字および改行文字の保持オプション (-q):

-q オプションにより、コマンド行プロセッサーは、単一または二重引用符で区切られているストリング内の空白文字および改行文字を保持します。

このコマンド・オプションのデフォルト設定は OFF です (+q または -q-)。

オプション -qON の場合、オプション -n は無視されます。

報告ファイルへの保存オプション (-r):
-r filename オプションは、 コマンドによって生成される出力データをすべて指定したファイルに書き込まれるようにします。 これは、 キャプチャーしないと画面がスクロールして見えなくなってしまうレポートのキャプチャーに便利です。 メッセージまたはエラー・コードはファイルに書き込まれません。 filename は絶対ファイル名または相対ファイル名で、ファイルまでのディレクトリー・パスを含むことができます。 ディレクトリー・パスを指定していない場合、現行ディレクトリーが使用されます。 新しいレポート項目がファイルに追加されます。

このコマンド・オプションのデフォルト設定は OFF です (+r または -r-)。

-a オプションを指定すると、SQLCA データがファイルに書き込まれます。

-r オプションは -e オプションには影響しません。 -e オプションを指定すると、 SQLCODE または SQLSTATE がファイルではなく標準出力に書き込まれます。

-r filename を DB2OPTIONS に設定すると、 ユーザーはコマンド行から +r (または -r-) オプションを設定して、 特定のコマンド呼び出しの出力データがファイルに書き込まれないようにすることができます。

報告ファイルへの保存オプションは、他のコマンド行プロセッサー・オプションには影響しません。

コマンド・エラー時の実行の停止オプション (-s):
コマンドが対話式モードでまたは入力ファイルから発行され、 構文またはコマンド・エラーが起きた場合、-s オプションを指定してあると、 コマンド行プロセッサーが実行を停止して、標準出力にエラー・メッセージが書き込まれます。

このコマンド・オプションのデフォルト設定は OFF です (+s または -s-)。 この設定により、コマンド行プロセッサーはエラー・メッセージを表示し、残りのコマンドの実行を続け、 システム・エラーが発生したとき (戻りコード 8) に限って実行を停止します。

次の表に、この動作を要約します。
表 2. CLP 戻りコードおよびコマンド実行
戻りコード -s オプション設定 +s オプション設定
0 (成功) 実行の継続 実行の継続
1 (0 行が選択された) 実行の継続 実行の継続
2 (警告) 実行の継続 実行の継続
4 (DB2 または SQL エラー) 実行の停止 実行の継続
8 (システム・エラー) 実行の停止 実行の停止
ステートメント終了文字のオプション (-t と -tdx または -tdxx):
-t オプションを指定すると、コマンド行プロセッサーはステートメント終了文字としてセミコロン (;) を使用するようになり、円記号 (¥) 行継続文字は無効になります。このオプションは、対話式モード内では変更できません。

このコマンド・オプションのデフォルト設定は OFF です (+t または -t-)。

注: XQuery ステートメントを発行するために CLP を使用する場合、セミコロン以外の終了文字を使用するのが最善の選択です。名前空間宣言もセミコロンで終了するため、こうすることによって、名前空間宣言を使用するステートメントまたは照会が誤って認識されないようにします。
長さが 1 または 2 文字の終了文字を定義するには、-td の後に選択した文字を指定します。 例えば、-td%% とすると %% がステートメント終了文字として設定されます。 またはその代わりに、入力ファイル中で --#SET TERMINATOR ディレクティブを使用してステートメント終了文字を設定することもできます。例:
db2 -td%% -f file1.txt
または
db2 -f file2.txt
file2.txt には、以下のステートメントがファイル中の最初のステートメントとして含まれます。
--#SET TERMINATOR %%

このコマンド・オプションのデフォルト設定は OFF です。

終了文字かどうかを調べられるのが各入力行の最後の 1 つまたは 2 つの非ブランク文字だけであるため、 コマンド行の複数のステートメントを連結するために終了文字を使用することはできません。

ステートメント終了文字オプションは、他のコマンド行プロセッサー・オプションには影響しません。

冗長出力オプション (-v):
-v オプションを指定すると、 コマンド行プロセッサーはコマンドからの出力またはメッセージを表示する前に、 ユーザーが入力したコマンド・テキストを (標準出力に) エコーします。 ECHO にはこのオプションは無効です。

このコマンド・オプションのデフォルト設定は OFF です (+v または -v-)。

+o (または -o-) が指定された場合、 -v オプションは無効になります。

冗長出力オプションは、他のコマンド行プロセッサー・オプションには影響しません。

警告メッセージ表示オプション (-w):
-w オプションにより、コマンド行プロセッサーは、照会 (FETCH/SELECT) 中に生じることのある警告メッセージを表示するかどうかを決定します。 警告は照会実行のさまざまな段階で生じることがあるので、 メッセージはデータが戻されるよりも前、その最中、またはその後に表示されることがあります。 戻されるデータに警告メッセージが含まれないようにするには、このフラグを使用できます。

このコマンド・オプションのデフォルト設定は ON です。

列見出しの印刷抑制オプション (-x):
-x オプションは、列名などのヘッダーなしでデータを戻すようコマンド行プロセッサーに通知します。 このフラグは、すべてのコマンドには影響を与えません。 これは、SQL ステートメント、および SQL ステートメントに基づくいくつかのコマンド (LIST TABLES など) に適用されます。

このコマンド・オプションのデフォルト設定は OFF です。

すべての出力のファイルへの保存オプション (-z):
-z filename オプションは、 コマンドによって生成される出力データをすべて指定したファイルに書き込まれるようにします。 これは、 キャプチャーしないと画面がスクロールして見えなくなってしまうレポートのキャプチャーに便利です。 これは、-r オプションに似ていますが、 メッセージ、エラー・コード、および情報出力もファイルに書き込まれる点が異なります。 filename は絶対ファイル名または相対ファイル名で、ファイルまでのディレクトリー・パスを含むことができます。 ディレクトリー・パスを指定していない場合、現行ディレクトリーが使用されます。 新しいレポート項目がファイルに追加されます。

このコマンド・オプションのデフォルト設定は OFF です (+z または -z-)。

-a オプションを指定すると、SQLCA データがファイルに書き込まれます。

-z オプションは -e オプションには影響しません。 -e オプションを指定すると、 SQLCODE または SQLSTATE がファイルではなく標準出力に書き込まれます。

-z filename を DB2OPTIONS に設定すると、 ユーザーはコマンド行から +z (または -z-) オプションを設定して、 特定のコマンド呼び出しの出力データがファイルに書き込まれないようにすることができます。

すべての出力のファイルへの保存オプションは、他のコマンド行プロセッサー・オプションには影響しません。