構文 - MultiLoad

Teradata® MultiLoad リファレンス

Product
MultiLoad
Release Number
17.00
Published
2020年6月
Language
日本語
Last Update
2021-01-07
dita:mapPath
ja-JP/aim1544831946660.ditamap
dita:ditavalPath
ja-JP/aim1544831946660.ditaval
dita:id
B035-2409
Product Category
Teradata Tools and Utilities


次のような場合に当てはまります。

datadesc
フィールド内のデータのタイプと長さです。
Teradata MultiLoadは、このデータに基づき、ユーザーが割り当てたフィールド名を使用して、後続の挿入、更新、および削除の各操作に対するUSING句を生成します。
データ型およびデータ変換の詳細については、Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック, B035-1184を参照してください。
DROP…
指定したfieldname1から削除する文字位置。
これらの位置は、文字データ型でなければなりません。
Teradata MultiLoadは、指定された文字を削除し、フィールドをデータ型としてデータベースVARCHAR表示します。
fieldexpr
以下に示す2つ以上の項目を連結します。
  • フィールド
  • 文字定数
  • 文字列定数
または、次のように組み合わせます。
fieldname2||fieldname2||fieldname2...
レイアウト内のフィールド名は固有でなければならず、ネストされた連結は指定できません。
実際のフィールド名である各fieldname2は、それぞれ専用のFIELDコマンドまたはFILLERコマンドで、startposパラメータおよび文字データ型を指定するdatadescパラメータを使用して指定する必要があります。
他のFIELDコマンドのfieldname1パラメータは、fieldexpr式で参照できます。
ジョブ スクリプトの文字セットが、ジョブで使用されるクライアントの文字セットと異なる場合、Teradata MultiLoadは文字セットおよび式で指定されるストリング定数をスクリプトの文字エンコーディングからクライアントの文字エンコーディングに変換してから、指定されたフィールドに定数を連結します。
例えば、z/OSでUTF-8クライアント文字セットを使用する場合、ジョブ スクリプトはTeradata EBCDICで記述される必要があります。ワークステーションに接続したシステムでUTF-16クライアント文字セットを使用する場合、ジョブ スクリプトはUTF-8でも構いません。
メインフレーム プラットフォームでUTF-8クライアント文字セットを使用する前に、文字セットの定義を確認し、コード ポイントおよびTeradata EBCDICとUnicode文字のマップを判断します。EBCDICのバージョンによっては、ジョブ スクリプト内のどの位置に特殊文字を配置すべきかが異なる場合があります。詳細については、Teradata Vantage™ - Advanced SQL Engine 国際文字セット サポート, B035-1125を参照してください。
fieldname1
入力レコード フィールドの名前
fieldname1は、次の要素で参照できます。
  • 後続のINSERT文、UPDATE文またはDELETE文
  • 別のFIELDコマンドのNULLIF nullexpr
  • LAYOUTコマンドの条件式、またはIMPORTコマンドのAPPLY句
fieldname1は、Teradata SQLの列名と同じ構造規則に従って指定する必要があります。
nullexpr
影響を受ける列内にnull値を選択的に挿入するために使用する条件です。
条件は、fieldnameによって表現される任意の数のフィールドと、定数を含む条件式として指定します。
条件式に示される個々のfieldnameは、次のいずれかによって定義しなければなりません。
  • FIELDコマンドのstartposおよびdatadescパラメータ
  • FILLERコマンド
  • TABLEコマンド。
nullexpr条件のfieldname指定は、FIELDコマンドの fieldexprでは定義できません。
他のFIELDコマンドのfieldname1パラメータは、nullexpr条件で参照できます。FastLoad型の値指定(NULLIF=value)をnullexprとして使用することはできません。nullexprには、論理演算子を含む完全な条件式を指定する必要があります。
ジョブ スクリプトの文字セットがジョブに使用されるクライアントの文字セットと異なる場合、Teradata Multiloadはストリング定数および式で参照されるインポート データを同じ文字セットに変換してから、式を評価します。
例えば、z/OSでUTF-8クライアント文字セットを使用する場合、ジョブ スクリプトはTeradata EBCDICで記述される必要があります。ワークステーションに接続したシステムでUTF-16クライアント文字セットを使用する場合、ジョブ スクリプトはUTF-8でも構いません。
ネットワークの例: クライアントの文字セットがUTF-16、スクリプト文字セットがUTF-8の場合に、次のコマンドを指定すると、MLOADはC1フィールドのデータをUTF-8形式に変換し、これをUTF-8形式'DELETED'と比べて評価結果を取得します。
.field C1 * varchar(20);
.field C2 * varchar(40) nullif c1 = 'DELETED';
メインフレームの例: メインフレームの例:クライアントの文字セットがUTF-8、スクリプト文字セットがTeradata EBCDICの場合に以下のコマンドを指定すると、Teradata MultiLoadは、C1フィールドのデータをUTF-8形式からTeradata EBCDIC形式に変換し、これをTeradata EBCDIC形式'removed'と比べて評価結果を取得します。
.field C1 * char(20);
.field C2 * char(40) nullif c1 = 'removed';
メインフレーム プラットフォームでUTF-8クライアント文字セットを使用する前に、文字セットの定義を確認し、コード ポイントおよびTeradata EBCDICとUnicode文字のマップを判断します。EBCDICのバージョンによっては、ジョブ スクリプト内のどの位置に特殊文字を配置すべきかが異なる場合があります。詳細については、Teradata Vantage™ - Advanced SQL Engine 国際文字セット サポート, B035-1125を参照してください。
startpos
外部データ ソースのデータ レコードに含まれる指定されたフィールドの開始位置。
startposは次のように指定できます。
  • 符号なし整数-最初の文字位置を1とした任意の位置
  • アスタリスク(*)-前のフィールドの次に使用可能な文字位置
複数のFIELDコマンドで同じ位置を指定することで、入力レコードのフィールドの位置を再定義できます。