17.10 - 使用上の注意 - MultiLoad

Teradata® MultiLoadリファレンス

Product
MultiLoad
Release Number
17.10
Release Date
2021年6月
Content Type
プログラミング リファレンス
Publication ID
B035-2409-061K-JPN
Language
日本語 (日本)

次の表 では、IMPORTコマンドを使用する場合に考慮すべき事柄について説明します。

対象 使用上の注意
データ型仕様 VARTEXT指定を使用する場合、Teradata MultiLoadレイアウトのFIELDコマンドおよびFILLERコマンドで使用できる有効なデータ型は、VARCHAR、VARBYTE、およびLONG VARCHARの3つです。
エラー レコードの処理 Teradata MultiLoadは、入力レコードにエラーを検出すると、通常はそのレコードを破棄した後に終了します。可変長テキストのレコードをロードしている場合、以下のエラー処理オプションを指定すると、この2つの処理の一方または両方を無効にできます。
  • DISPLAY ERRORS
  • NOSTOP

    これら2つのオプションを両方指定して、STDERRを端末画面ではなくファイルにリダイレクトすると、Teradata MultiLoadジョブは最後まで実行され、エラー レコードがすべて保存されます。その後、エラーを手動で修正してから表にロードできます。

z/OS上で実行する場合のFREE/HOLDオプション JCLに指定する出力装置の処分は、z/OSで実行されているTeradata MultiLoadタスクでFREE/HOLDオプションが機能するようにするためには、PASSではなく必ずKEEPにします。
インポート タスク関連コマンドの制限 DMLコマンドの下に記述できるTeradata SQL文の合計数は、1つのTeradata MultiLoadインポート タスクにつき最高100です。

データベースに送信する文が多過ぎる場合、1つのTeradata MultiLoadインポート タスクに対してDMLステップが多過ぎることを示すエラー メッセージが出力されます。

インポート タスクでは、条件が指定されていないか、または指定された条件が真の場合に、対象となる文または一連の文が適用されます。

ただし、IMPORTコマンドでの適用対象となるDML文は、IMPORTコマンドの1つ以上のAPPLY句にラベルが指定されているDMLコマンドに含まれるDML文に限られます。(参照されるDMLコマンドとそれに続くDML文は、インポート タスクを定義するBEGIN MLOADコマンドと、参照するIMPORTコマンドの間に指定します。)

入力レコードの要件 各入力レコードのフィールド数の合計は、Teradata MultiLoadレイアウトのFIELDコマンドおよびFILLERコマンドで指定されたフィールド数以上でなければなりません。

コマンドに指定された数よりも少ないと、Teradata MultiLoadによってエラー メッセージが出力されます。

レコードの最後のフィールドに区切り記号を入れるかどうかは任意です。

ヌル フィールド 区切り記号が2つ続いた場合、最初の区切り記号の直後の位置に対応するフィールドがTeradata MultiLoadによってヌルに設定されます。

また、レコードの最後の文字が区切り記号で、処理するべきフィールドが少なくとももう1つ存在する場合、レイアウトのFIELDコマンドおよびFILLERコマンドの定義に従って、次に処理するべきフィールドに対応するフィールドがTeradata MultiLoadによってヌルに設定されます。

複数のAPPLY句 インポート タスクでは、次に挙げるどちらかの方法で同じデータ レコードに対して複数のAPPLY句を適用できます。この機能により、同じまたは異なる条件に基づいて、同じデータ レコードを別々の表に適用できます。

1つの方法として、APPLY句が参照しているラベルの有効範囲に複数のDML文が含まれていれば、それらの文のそれぞれが、その句に指定されている同じ条件下にある同じデータ レコードに対して適用されます。

2つ目の方法としては、複数のAPPLY句を使用すると、異なるDML文(複数可)に対するlabelをそれぞれの句で参照できます。各labelは、該当する句に指定された条件にある同じデータ レコードに適用されます。

基本索引とパーティション列セット IMPORTタスクでは、削除または更新用に、基本索引列セットのすべての値とパーティション列セットのすべての値を入力する必要があります。IMPORTタスクでは、パーティション列セットの更新をサポートしていません。IMPORTタスクでは、基本索引の更新をサポートしていません。
レコード長の妥当性検査 デフォルトでは、インポート データの実際のレコード長とジョブのレイアウト指定で指定されているレコード長とはTeradata MultiLoadによって比較されません。
この2つが一致しない場合、インポート データの実際のレコード長が、レイアウト指定で指定されているレコード長より大きいか小さいかによって、Teradata MultiLoadでは以下のいずれかの処理が実行されます。
  • 実際のインポート データ レコード長が、レイアウト指定で指定された長さより短い場合、Teradata MultiLoadはエラーを出力して終了します。
  • 実際のインポート データ レコード長が、レイアウト指定で指定された長さより長い場合、Teradata MultiLoadは余分なフィールドを無視して、インポート タスクを継続します。

デフォルトの動作を変更して、レコード長妥当性検査が必ず実行されるようにするためには、Teradata MultiLoadを起動する前に、Teradata MultiLoad構成ファイルにMATCHLEN=onを設定します。この設定を行なうと、実際のレコード長が指定されたレコード長と異なる場合にTeradata MultiLoadがエラー メッセージを出力して終了します。

Teradata MultiLoad構成ファイルの使用方法については、Teradata MultiLoad構成ファイルを参照してください。

VARTEXTレコード VARTEXTを指定すると、Teradata MultiLoadによって、入力データは最大10文字のフィールド区切り文字で区切られた可変長テキストとみなされます。入力データ レコードはフィールドごとに順に解析され、各入力テキスト フィールドに対して1つのVARCHARフィールドが作成されます。