コマンド ライン オプション - Basic Teradata Query

Basic Teradata Query リファレンス

Product
Basic Teradata Query
Release Number
16.20
Published
2018年4月
Language
日本語
Last Update
2019-07-11
dita:mapPath
ja-JP/kil1527114222313.ditamap
dita:ditavalPath
ja-JP/kil1527114222313.ditaval
dita:id
B035-2414
Product Category
Teradata Tools and Utilities

ワークステーション接続システムの場合、以下のBTEQコマンド ライン オプションを使用します。

-V
BTEQは"Teradata BTEQ <version> for <platform>"形式を使用して自身のバージョン情報を返します。
-Vs
バージョン値自体のみで構成される、短い形式のBTEQバージョン情報が生成されます。
-c [Charset Encoding]
起動時のBTEQの初期セッション文字セットのエンコーディングを定義します。この値には、文字セット名または文字セット コードを指定できます。デフォルトでは、このオプションによって、-eオプションと-mオプションが使用されていない場合にBTEQが使用するI/Oエンコーディングも定義されます(下記を参照)。

-cオプションは、clispb.datファイルで定義されている文字セット値を上書きします。UTF-16セッションを開始するためには、このオプションが必要です。続いてSESSION CHARSETコマンドを使用して(ある特定の制限が適用されます。SESSION CHARSETを参照してください)、BTEQのセッション文字セットを変更できます。セッション文字セットを定義する場合に-cオプションとclispb.datファイルを使用していない場合、BTEQはデフォルトでASCIIに設定します。

-e [I/O Encoding]
BTEQが使用するI/Oエンコーディングを定義します。このオプションは、BTEQが(-cオプションまたはclispb.datファイルで)UTF8またはUTF16セッション文字セットを使用するように初期設定されている場合にのみ有効です。指定可能な値は、UTF8またはUTF16の名前またはコード(それぞれ63と62)です。-eオプションが使用されている場合、そのセッションのI/Oエンコーディングを変更することはできません。-eオプションは-cオプションの前に使用することを推奨します。
-m
対話形式のUnicodeセッションのI/Oエンコーディングが、実際のUnicodeコード ポイントではなくシステムのロケールに基づいたマルチバイト文字でエンコードされていることを指示します。このオプションでは引数は使用されず、-eオプションではなく-cオプションを使用する必要があります。このオプションが指定されていない場合、BTEQは常にデフォルトの“C”ロケールを使用します。

免責事項: あるロケールが(-mオプションによって)有効となっている場合、BTEQは、そのロケールで処理できる種類の文字に制限されます。例えば、ロシア語のロケールの使用時にはタイ語の読み取りや表示を行なうことはできません。多くの場合、ロケール外の文字は疑問符('?')で置き換えられます。

Windowsでのロケールの定義例:

  1. コントロール パネルを開きます。
  2. 地域と言語のオプションを選択します。
  3. Unicode対応でないプログラムの言語の値を選択します。

    必要な言語が使用可能になっていない場合は、適切な言語サポートを先に導入しておく必要があります。

  4. 再起動が必要になることがあります。

Unixオペレーティング システムでのロケールの定義例:

  1. locale -aを使用して、使用可能なロケールを表示します。
  2. LC_CTYPE環境変数に、使用可能なロケールの1つを設定します。
-ob
リダイレクトされているstdoutおよびstderrストリームに、バイト オーダー マーク(BOM)を書き込む必要があることを指示します。このオプションは、Unicode出力を生成するワークステーションBTEQのセッションに対してのみ有効であり、そのI/Oエンコーディングは-cオプション、-eオプション、またはstdinスクリプトのエンコーディングでの指定に基づきます。BTEQでは、端末に表示されていない出力ストリームに対してのみBOMを書き込むことが意図されています。stdoutとstderrが同じファイルまたは同じデバイスにリダイレクトされている場合、BOMは1つだけ書き込まれます。stdoutとstderrが個別にリダイレクトされている場合、各ストリームにBOMが書き込まれます。ただし、stdoutまたはstderrがファイルの末尾に追加されている場合、そのファイルは確立済みであるため、BOMは書き込まれません。同様に、stdoutまたはstderrにテキストが書き込まれない場合にBOMだけが書き込まれることはありません。-obオプションは、出力ストリームをパイプにリダイレクトしている場合にも使用できます。

コマンド ラインでこれらのオプションやBTEQコマンドを指定する場合、まずコマンド ライン オプションを定義する必要があります。コマンド ライン オプションの使用例を次のテーブルに示します。

コマンド ライン オプション 説明
bteq 対話モード。文字セットとI/OエンコードはデフォルトでASCIIに設定される
bteq -c ASCII < script ASCIIスクリプトを使用するバッチ モード。文字セットとI/OエンコードはASCIIになる
bteq -c KANJISJIS_0S Interactive mode:文字セットとI/OエンコードはKanjiShift-JISになる
bteq -c UTF8 < script UTF-8スクリプトを使用するバッチ モード。文字セットとI/OエンコードはUTF8になる
bteq -ob -c UTF16 < script > out 2>&1 UTF-16スクリプトを使用するバッチ モード。文字セットとI/OエンコーディングはUTF16になる。1つのBOMが"out"ファイルの先頭に書き込まれる
bteq -e UTF8 -c UTF16 < script UTF-8スクリプトを使用するバッチ モード。文字セットはUTF16、I/OエンコードはUTF8になる
bteq -e 62 -c 63 < script UTF-16スクリプトを使用するバッチ モード。文字セットはUTF8、I/OエンコードはUTF16になる
bteq -c utf16 -m Interactive mode:文字セットはUTF16になり、I/Oエンコードはロケールに基づいて設定される
bteq -c utf8 -m Interactive mode:文字セットはUTF8になり、I/Oエンコードはロケールに基づいて設定される
メインフレーム接続システム用のコマンド ライン オプションはありません。
-mオプションなしで対話型Unicodeセッションが使用されている場合、BTEQは、7ビットのASCII文字をサポートすると想定されるオペレーティング システムの現在の言語設定に依存します。 このため、対話モードの入力では、BTEQが各文字を1バイトとして読み取ります。 つまり、マルチバイトのUnicode文字は、対話モードの入力ではサポートされていません。 出力の場合、BTEQはマルチバイトのUnicode文字をstdoutやstderrに書き込むことができます。 ただし、オペレーティング システムがマルチバイトのUnicode文字を認識できず、各バイトを1つずつ表示する場合があります。 BTEQをバッチ モードで実行している場合には、このような状況は起こりません。
コマンド ラインの入力にフラグ オプションが含まれていない場合、入力はstdin/SYSINから入力された場合と同様に処理されます。 これはワークステーションBTEQとメインフレームBTEQの両方に該当します。

メインフレームBTEQの場合、コマンド ラインの入力はBTEQ STEPのJCL PARMパラメータに入れて渡すことができます。実行時オプションおよびプログラム引数を指定する場合は、次のIBM/Cルールに従う必要があります。

状況 形式
実行時オプションのみが存在する場合 run-time options/
プログラム引数のみが存在する場合
  1. 引数内にスラッシュがあり、先行スラッシュが必須の場合
  2. 引数内にスラッシュがなく、先行スラッシュがオプションの場合
次のいずれかです。
  1. /program arguments
  2. program argumentsまたは

    /program arguments

実行時オプションとプログラム引数が両方存在する場合 run-time options / program arguments

例:

//BTEQ00   EXEC PGM=BTQMAIN,PARM='.RUN DDNAME RUNFILE'

(ログオン文字列に'/'が含まれるため、先行する'/'は必須です)

//BTEQ00   EXEC PGM=BTQMAIN,PARM='/.LOGON TDP0/DBC,DBC'