メインフレーム接続クライアントシステム
ワークステーション接続クライアントシステム
次のような場合に当てはまります。
- INFILE ddname
- メインフレーム接続のz/OSクライアント システム上にある、入力レコードが入った外部データ ソースです。z/OSではDDNAMEです。
- DDNAMEが指定されている場合、Teradata TPumpは、指定されたソースからデータ レコードを読み取ります。modulenameも指定されている場合、Teradata TPumpは読み取ったレコードを特定のモジュールに渡します。
- DDNAMEは、外部システムに適用可能な規則に従う必要があります。シーケンシャル(VSAM)データ セットを参照できます。
- DDNAMEは、以下の場合を除いて、Teradata SQL列名と同じ構成規則に従う必要があります。
- 「アット」(@)はアルファベット文字として使用できます。
- 下線(_)は使用できない。
- DDNAMEが磁気テープ上のデータ ソースを表わす場合、テープは、オペレーティング システムのサポート内容によって、ラベル付きとラベルなしのどちらかとなります。
- AXSMOD name
- データのインポートに使用するアクセス モジュール ファイル名。これらのアクセス モジュールには以下の項目が含まれます。
- Teradata Access Module for OLE DB: Windowsプラットフォームの場合、oledb_axsmod.dll
- Teradata Access Module for Named Pipes:
- すべてのサポートされているUNIX プラットフォームの場合、np_axsmod.so
- Windowsプラットフォームの場合、np_axsmod.dll
- Teradata Access Module for WebSphere MQ (クライアント バージョン):
- すべてのサポートされているUNIX プラットフォームの場合、libmqsc.so
- Windowsプラットフォームの場合、libmqsc.dll
- Teradata Access Module for WebSphere MQ (サーバーバージョン):
- すべてのサポートされているUNIX プラットフォームの場合、libmqs.so
- Windowsプラットフォームの場合、libmqs.dll
- Teradata Access Module for JMS:
- すべてのサポートされているUNIX プラットフォームの場合、libjmsam.so
- Windowsプラットフォームの場合、libjmsam.dll
- カスタム アクセス モジュールを使用する場合は、個人の共有ライブラリ ファイル名を使用できます。
- ワークステーション接続またはメインフレーム接続のクライアント システムにあるディスク ファイル、またはメインフレーム接続のクライアント システムにある磁気テープ ファイルをインポートする場合には、AXSMODオプションは必要ありません。このコマンドが必要なのは、ワークステーション接続のクライアント システムにある磁気テープおよびその他の種類のファイルをインポートする場合です。
- 'init-string'
- アクセス モジュール用の任意選択初期設定文字列です。
- 初期設定文字列には二重引用符を含めることができますが、単一引用符を含めることはできません。
- INFILE filename
- ワークステーション接続のクライアント システム上にある入力ファイルの、完全に修飾されたUNIXまたはWindowsパス名。
- パス名に空白文字が埋め込まれている場合、パス名全体を単一引用符または二重引用符で囲む必要があります。
- INFILE filenameを指定した場合、その指定したソースからデータが読み取られます。INMOD modulenameも併せて指定した場合には、その指定したモジュールにデータが渡されます。
- HOLD
- メインフレーム接続クライアント システムでインポート操作が完了したときに、ddnameによって指定された入力テープ デバイスの割り当てを解除しない、デフォルトの条件です。
- ただし、HOLD指定は、Teradata TPump操作全体が完了したときにはデバイスの割り当てを解除します。
- FREE
- メインフレーム接続クライアント システムでのインポート操作完了時に、ddnameで指定したテープ入力装置の割り当てを解除します。
- 割り当てを解除したとき、同じTeradata TPumpユーティリティのタスクまたは同じスクリプト内の別のタスクにおいて、入力デバイスを開く試みが行なわれると、未定義のddnameエラーが発生します。
- デフォルトでは、デバイスの割り当てを解除しません。
- INMOD modulename
- 入力データの前処理を行なうための、任意指定のユーザー作成ルーチン。
- z/OSでは、modulenameはロード モジュールの名前です。UNIXおよびWindowsシステムでは、INMOD実行可能コード ファイルのパス名です。
- modulenameは外部システムの該当する規則にも従わなければなりません。
- modulenameは、Teradata SQLの列名と同じ構成規則に従う必要があります。ただし、メインフレーム接続クライアント システムでは次の例外があります。
- 「アット」(@)はアルファベット文字として使用できます。
- 下線(_)は使用できない。
- INFILE fileidとINMOD modulenameの両方のパラメータを指定した場合、入力ファイルが読み取られ、データがINMODルーチンに渡されて前処理されます。
- INFILE fileidパラメータを指定しない場合、INMODルーチンで入力データ レコードを供給しなければなりません。
INFILE指定とともにINMODルーチンを使用した場合、Teradata TPumpがファイル読み取り操作を実行し、INMODルーチンはパススルー フィルタの役割を果たします。
- FDL互換INMODルーチンでは常にファイル読み取り操作を実行しなければならないため、FDL互換INMODルーチンとTeradata TPumpのIMPORTコマンドとを組み合わせることはできません。
- UNIXのバージョンによっては、モジュールが現在のディレクトリにある場合、modulename指定に./接頭文字を追加しなければならない場合があります。
- Windowsプラットフォームにおいて、INMODモジュールの出力でstdoutにメッセージが送られる場合、INMODが使用する文字セットは、Teradata TPUMPが使用する文字セットには依存しておらず、stdoutの表示で文字セットを混在させることができます。例えば、IMMODは、メッセージをASCII形式で出力し、TPUMPはUTF-16形式で出力できます。
- USING (parms)
- ユーザー出口ルーチンに渡すパラメータを含む文字列。
- parms文字列には、いくつかの文字列を含めることができます。それぞれの文字列は両端をアポストロフィーまたは引用符で区切ります。
- parms文字列の最大サイズは1Kバイトです。
- 区切られた文字列またはコメントの中の括弧は、構文上は英字と同じ意味を持ちます。
- parms文字列がユーザー出口ルーチンに渡される前に、次の各項目がブランク文字1字に置き換えられます。
- 各コメント
- 区切られた文字列の外側にある連続した空白文字(ブランク、タブなど)。
- parms文字列は、全体を括弧で囲まなければなりません。 メインフレーム接続クライアント システムでは、この括弧はユーザー出口ルーチンに渡される列に含まれます。
parms文字列は、以前のPascalバージョンのFastLoadユーティリティ(プログラムFASTMAIN)用に書かれたユーザー出口ルーチンでは、FDLINMODでなければなりません。
- FROM m
- 確認済みデータ ソースにおいて処理を開始するレコードの論理レコード番号(整数)。
- FROM mを指定しない場合、Teradata TPumpはデータ ソースから受け取った最初のレコードから処理を開始します。
- FOR n
- レコードmで開始される処理の対象となるレコードの数(整数)。
- FOR nまたはTHRU k指定を使用しない場合、Teradata TPumpはデータ ソースから取得した最後のレコードまで処理を続行します。
"FOR 0"を使用する場合、"FROM as 2"はデフォルトの"THRU as 1"になります。警告が発行された場合、Teradata TPumpはデータ ファイルの2番目のレコードのみをターゲット テーブルにロードします。
- THRU k
- 確認済みデータ ソースにおいて処理を終了するレコードの論理レコード番号(整数)。
- THRU kまたはFOR n指定を使用しない場合、Teradata TPumpはデータ ソースから取得した最後のレコードまで処理を続行します。
- FORMAT
- 入力ファイルのレコード形式。
- 以下の形式が可能です。
- スクリプトの文字セットがクライアントのセッション文字セットと異なる場合、区切り文字は、Data Connectorに渡される前に、スクリプトの文字セットからクライアントのセッション文字セットに変換されます。
- データに使用されている文字列を区切り文字として使用することはできません。タブ文字以外の制御文字は区切り文字として使用できません。
- メインフレーム プラットフォームでは、アクセス モジュールが使用されない場合、入力データのレコードごとの読み取りと、それぞれのレコードの読み取りにLAYOUTを適用することがデフォルトとなります。
- 'c'
- 入力データ ソースの可変長テキスト レコードにおいてフィールドを区分する区切り記号の指定(オプション)。
- 'c'指定を使用しない場合、デフォルトは垂直バー文字(|)です。
- ジョブ スクリプトの文字セットがジョブで使用されるクライアント文字セットと異なる場合(例えば、z/OSでUTF-8クライアント文字セットを使用する場合ジョブ スクリプトはTeradata EBCDIC形式でなければならず、またUTF-8形式のジョブ スクリプトではUTF-16クライアント文字セットが使用できる)、Teradata TPumpは、有効な区切り記号をスクリプト文字セット形式からクライアント文字セット形式に変換してから、その文字でフィールドを区切ります。
- 例えば、クライアント文字セットがUTF-16でスクリプトの文字セットがUTF-8の場合に、次のコマンドが与えられたとします。
- … FORMAT VARTEXT '-' ...
- Teradata TPumpは'-'をUTF-8形式からUTF-16形式に変換し、UTF-16形式の'-'に従ってレコード内のフィールドを区切ります。
- 同様に、クライアント文字セットがUTF-8でスクリプトの文字セットがTeradata EBCDICの場合に、次のコマンドが与えられたとします。
- ...FORMAT VARTEXT'6A'xc..
- Teradata TPumpはTeradata EBCDICに従ってx'6A'を解釈して、対応するUnicodeコード ポイントU+007C "VERTICAL LINE"に変換し、U+007CのUTF-8エンコーディング スキーム、0x7C (7ビットASCIIの'|')をレコードの区切り記号として使用します。
メインフレームでUTF-8クライアント セットを使用する場合は、必ず
Teradata Vantage™ - Advanced SQL Engine 国際文字セット サポート, B035-1125にある定義を調べて、必要な特殊文字のコード ポイントを確認してください。EBCDICのバージョンが異なる場合、これらの文字列置換が必ずしも一致するとは限りません。
例えば、'|'のコード ポイントはほとんどのIBM EBCDICコード ページでx'4F'です。このようなIBM EBCDICコード ページを使用しているシステム環境で、スクリプトに'|'を区切り記号として指定するか、デフォルトの区切り記号をそのまま使用した場合(これは本質的に'|'を指定するのと同じ)、UTF8のデータでx'7C' (Unicodeの'|')が区切り記号として使用されていると、Teradata EBCDICでは、コード ポイントx'4F'は、U+007CではなくU+008Dにマップされるため、ジョブはエラーになります。
- DISPLAY ERRORS
- エラーを起こした入力データ レコードを標準エラー ファイルに書き出すことを指定するオプション キーワード
- NOSTOP
- 可変長テキスト レコードに関するエラー条件に反応してTeradata TPumpが終了するのを禁止する、オプションのキーワード指定。
- LAYOUT layoutname
- 入力レコードのレイアウトで、以前のコマンドによって指定されます。
- APPLY label
- 後続のINSERT文、UPDATE文、またはDELETE文に応じて以前のDML LABELコマンドによって指定されるエラー処理オプション。
- WHERE condition
- 指定したラベル オプションをレコードに適用して、データベースに送るかどうかを判断する条件で、次のように判断されます。
- 真のcondition=送る
- 偽のcondition=送らない
- condition指定は次を参照できます。
- 現在アクティブなレイアウトで定義されているフィールドの任意の組み合わせ
- システム定義およびユーザー定義の定数および変数
- コマンドで指定されているfieldname1
- VARTEXTを指定している場合、Teradata TPumpは、入力データがフィールド区切り記号によって区分された可変長テキスト フィールドであると想定します。入力データ レコードはフィールドごとに順に解析され、各入力テキスト フィールドに対して1つのVARCHARフィールドが作成されます。
- ジョブ スクリプトの文字セットがジョブで使用されるクライアント文字セットと異なる場合(例えば、z/OSでUTF-8クライアント文字セットを使用する場合ジョブ スクリプトはTeradata EBCDIC形式でなければならず、またUTF-8形式のジョブ スクリプトではUTF-16クライアント文字セットが使用できる)、Teradata TPumpは、条件を評価する前に、条件で指定される文字列定数と条件で参照されるインポート データを同じ文字セットに変換します。
- 例えば、クライアント文字セットがUTF-16でスクリプトの文字セットがUTF-8の場合に、次のコマンドが与えられたとします。
- … APPLY lable1 WHERE C1 = 'INSERT';
- Teradata TPumpはC1フィールドのデータをUTF-8形式に変換し、それをUTF-8形式の'INSERT'と比較して評価結果を得ます。
- 同様に、クライアント文字セットがUTF-8でスクリプトの文字セットがTeradata EBCDICの場合に、次のコマンドが与えられたとします。
- … APPLY lable2 WHERE C2 = 'DELETE';
- Teradata TPumpはC2フィールドのデータをUTF8形式からTeradata EBCDIC形式に変換し、それをTeradata EBCDIC形式の'DELETE'と比較します。
メインフレームでUTF-8クライアント セットを使用する場合は、必ずTeradata Vantage™ - Advanced SQL Engine 国際文字セット サポート, B035-1125にある定義を調べて、必要な特殊文字のコード ポイントを確認してください。異なるバージョンのEBCDICでは、それらの文字の配置が必ずしも一致しているとは限りません。Teradata EBCDICとUnicode間のマッピングについては、Teradata Vantage™ - Advanced SQL Engine 国際文字セット サポート, B035-1125を参照してください。
- EFILE <efilename>
- [任意選択]エラーを生成する入力データ レコードをユーザー指定のエラー ファイルに書き込むキーワード指定です。ユーザーがエラー ファイル名を指定しない場合、デフォルトではワークステーション接続プラットフォームの場合は標準のエラー ファイルが、チャネル接続プラットフォームの場合はSYSOUTがエラー指定先となります。
- TRIM
- TRIMオプションでは、トリミングを行なわない、または前後にある埋め込み文字の両方をトリミングするよう要求できます。デフォルトの埋め込み文字は空白(スペース)です。
- TRIMキーワードが指定された場合のみ、トリミングは行なわれません。
- QUOTE
- QUOTEオプションでは、入力データ値の非引用(QUOTE NO)、オプションで引用(QUOTE OPTIONAL)、または常に引用(QUOTE YES)を指定できます。
- データの値がオプションで引用、または常に引用される場合、開き引用符および閉じ引用符で囲い込んで指定できます。開始引用符と終了引用符両方のデフォルトの引用符は(")です。開き引用符を('q')、閉じ引用符を('r')で区別できます。'q'のみ指定されていた場合、開き引用符と閉じ引用符の両方とみなします。開き引用符、閉じ引用符、またはこれら両方にアポストロフィーが含まれる場合、QUOTEではアポストロフィーを2重にして指定する必要があります。
- 現在、単一引用符のみサポートされています。
- QUOTEキーワードのみを指定した場合、非引用と同じ扱いとなります。
埋め込み単一引用符の'c'、'p'、'q'および'r'文字列において、文字列内に単一引用符が存在する場合、単一引用符を使用して文字列内の文字をエスケープします。