1つのTeradata TPumpロード タスクでは、最大100個のIMPORTコマンドを使用できます。1つのロードは、BEGIN LOADとEND LOADコマンドの対でまとめられたコマンドと文の集合で構成されます。あるロードでデータベースに送られるIMPORTの数が100個を超える場合、TPumpはエラー メッセージとともに終了します。ジョブに関する統計を記録する上で必要なメモリ量を制限するため、ロード当たりのIMPORT数は少なくすることを推奨します。
IMPORTで参照できるINSERT、UPDATE、およびDELETEの文の最大数は128です。128番目のDMLによって、エラー テーブルのDMLSEQフィールドにDMLの連続番号128が挿入されて、データベース3520エラーが引き起こされることがあります。
IMPORTコマンドで適用対象となる唯一のDML文は、1つ以上のIMPORTコマンドのAPPLY句にラベルが指定されているDMLコマンド範囲内のDML文だけです。参照されるDMLコマンドとそれに続くDML文は、タスクを定義するBEGIN LOADコマンドと、それを参照するIMPORTコマンドとの間に置かなければなりません。条件が指定されていない場合、または指定された条件が真である場合に、その文または文のグループが適用されます。
Teradata TPumpでは、2つの方法のいずれかを使用して、同じデータ レコードに対して複数の文を適用できます。1つの方法として、APPLY句が参照しているラベルの有効範囲に複数のDML文が含まれていれば、それらの文のそれぞれが、その句に指定されている同じ条件下にある同じデータ レコードに対して適用されます。もう1つの方法として、複数のAPPLY句を使用する場合、異なるDML文または文のグループに指定されているラベルをそれぞれの句から参照できます。各ラベルは、該当する句に指定された条件にある同じデータ レコードに適用されます。これらの機能により、同じまたは異なる条件下にある異なるテーブルに対して同じデータ レコードを適用できます。
VARTEXTレコードの使用法
VARTEXTを指定している場合、Teradata TPumpは、入力データがフィールド区切り記号によって区分された可変長テキスト フィールドであると想定します。ユーティリティはフィールドごとに各入力データ レコードを構文解析し、各入力テキスト フィールドに関してVARCHARフィールドを作成します。
VARTEXT指定を使用する場合、Teradata TPumpレイアウトFIELDおよびFILLERコマンドにおいて使用できる有効なデータ型の指定は、VARCHAR、VARBYTE、およびLONG VARCHARのみとなります。
2つの連続する区切り記号がある場合、Teradata TPumpは、最初の区切り記号の直後のフィールドに対応するフィールドをヌルにします。
また、レコードの最後の文字が区切り記号で、処理するフィールドが1つ以上残っている場合、Teradata TPumpは、レイアウトFIELDおよびFIELDコマンドの定義に応じて、次に処理されるフィールドに対応するフィールドをヌルにします。
各入力レコードのフィールド数は、Teradata TPumpレイアウトFIELDおよびFIELDコマンドに記述されているフィールド数と同じまたはそれより多くなければなりません。
数が少ない場合、Teradata TPumpはエラー メッセージを生成します。数が多い場合、データベースは余分なフィールドを無視します。
レコードの最後のフィールドは、区切り記号で終わっている必要はありません。区切り記号で終わることは可能ですが、必須ではありません。
- DISPLAY ERRORS
- NOSTOP
NOSTOPを指定した場合、Teradata TPumpはエラーに遭遇しても終了しません。
両方のオプションを指定して、STDERRを端末画面ではなくファイルにリダイレクトすると、Teradata TPumpジョブは最後まで実行され、すべてのエラー レコードが保存されます。その後、エラー レコードを手動で修正し、テーブルにロードできます。
Teradata TPumpタスクのIMPORTコマンドはすべて、そのタスクのBEGIN LOADコマンドとEND LOADコマンドの間になければなりません。
Teradata TPumpでは、INMODユーザー出口ルーチンに対するparms文字列について、いくつかの構文規則があります。Teradata TPump用のINMODユーザー出口ルーチンに入った時点で、標準的なパラメータ レジスターに、INMODとの通信で使用する2つの32ビット アドレスから成るパラメータ リストが指定されます。
&IMP <n>_<Apply label>_<x>
- n=IMPORTの番号(1~100)。
- Apply label=そのDMLコマンドを含む句のラベル。
- x=含まれているAPPLY句での文の番号。
次のスクリプトは、APPLYキーワードを使用して、DML INSERT、UPDATE、およびUPSERTをIMPORTに適用する条件句を作成するTeradata TPumpジョブの例です。