17.10 - 例 – twbertbl - Parallel Transporter

Teradata® Parallel Transporterリファレンス

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

例1

この例では、エラー情報をLoadオペレータの取得フェーズ エラー テーブルから抽出します。 この例では、Loadオペレータ ジョブのサンプル スキーマを使用します。

EMP_ID   VARCHAR(20),
EMP_NUM  VARCHAR(10)

この例では、Loadオペレータの取得フェーズ エラー テーブルの、このサンプルの内容を使用します。

ErrorCode ErrorFieldName DataParcel
--------- -------------- ----------------------
2683      EMP_NUM        0003003130300300313238
  • z/OS以外のプラットフォームでコマンドを実行する際には、以下のtwbertbl構文例を使用してください。
    twbertbl -h <TdpId> -u <UserName> -t <ErrorTableName>
          -n <NumberOfLoadedColumns> -o <OutputFileName>
  • On z/OSでは、JCL内で以下の構文例を使用します。
    //TWBERTBL EXEC PGM=TWBERTBL,
    // PARAM='-h TDP0 -u MyUser -p MyPass -n 2 -t LoadOpErrTbl1
    //               -o DD:DATA'
  • 抽出後、出力ファイル名の内容は、区切り文字で区切られて次のように表示されます。
    EMP_NUM|2683|100|128

    出力ファイル名の最初のフィールドは、各エラーを引き起こしたフィールドの名前です。

    2番目のフィールドは、各エラーのエラー コードです。

    残りのフィールドは、各エラーのデータ レコードの列値です。

例2

この例では、エラー情報をUpdateオペレータの取得フェーズ エラー テーブルから抽出します。

この例では、Updateオペレータ ジョブの、このサンプル スキーマを使用します。

EMP_ID   VARCHAR(20),
EMP_NUM  VARCHAR(10)

この例では、Updateオペレータの取得フェーズ エラー テーブルの、このサンプルの内容を使用します。

ImportSeq DMLSeq SMTSeq ApplySeq SourceSeq
--------- ------ ------ -------- ---------
1         1      1      1        1

ErrorCode ErrorField HostData
--------- ---------- ----------------------
2683      EMP_NUM    0003003130300300313238
  • z/OS以外のプラットフォームでコマンドを実行する際には、以下のtwbertbl構文例を使用してください。
    twbertbl -h <TdpId> -u <UserName> -t <ErrorTableName>
          -n <NumberOfLoadedColumns> -o <OutputFileName>
  • On z/OSでは、JCL内で以下の構文例を使用します。
    //TWBERTBL EXEC PGM=TWBERTBL,
    // PARAM='-h TDP0 -u MyUser -p MyPass -n 2 -t UpdateOpErrTbl1
    //               -o DD:DATA'
  • 抽出後、出力ファイル名の内容は、区切り文字で区切られて次のように表示されます。
    1|1|1|1|1|EMP_NUM|2683|100|128

    出力ファイル名の最初のフィールドは、各エラーを引き起こしたインポート シーケンス番号です。

    2番目のフィールドは、各エラーを引き起こしたDMLシーケンス番号です。

    3番目のフィールドは、各エラーを引き起こしたステートメントシーケンス番号です。

    4番目のフィールドは、各エラーを引き起こした適用シーケンス番号です。

    5番目のフィールドは、各エラーを引き起こした行シーケンス番号です。

    6番目のフィールドは、各エラーを引き起こしたエラー コードです。

    7番目のフィールドは、各エラーを引き起こしたフィールド名です。

    残りのフィールドは、各エラーのデータ レコードの列値です。

例3

この例では、複数バイトの文字区切り記号を使用して、Load演算子の取得フェーズ エラー テーブルからエラー情報を抽出します。

この例では、Loadオペレータ ジョブのこのサンプル スキーマを使用します。

EMP_ID   VARCHAR(20),
EMP_NUM  VARCHAR(10)

この例では、Loadオペレータの取得フェーズ エラー テーブルの、このサンプルの内容を使用します。

ErrorCode ErrorFieldName DataParcel
--------- -------------- ----------------------
2683      EMP_NUM        0003003130300300313238
  • z/OS以外のプラットフォームでコマンドを実行する際には、以下のtwbertbl構文例を使用してください。
    twbertbl -h <TdpId> -u <UserName> -t <ErrorTableName>
          -n <NumberOfLoadedColumns> -o <OutputFileName> -d <Multi-byte
          characters delimiter>
  • On z/OSでは、JCL内で以下の構文例を使用します。
    //TWBERTBL EXEC PGM=TWBERTBL,
    // PARAM='-h TDP0 -u MyUser -p MyPass -n 2 -t UpdateOpErrTbl1
    // -o DD:DATA -d aaa'
  • 抽出後、出力ファイル名の内容は、マルチバイトの区切り文字‘aaa’で区切られて次のように表示されます。
    EMP_NUMaaa2683aaa100aaa128

    出力ファイル名の最初のフィールドは、各エラーを引き起こしたフィールドの名前です。

    2番目のフィールドは、各エラーのエラー コードです。

    残りのフィールドは、各エラーのデータ レコードの列値です。

例4

この例では、エラー情報をStreamオペレータのエラー テーブルから抽出します。

この例では、Streamオペレータ ジョブの、このサンプル スキーマを使用します。
EMP_ID VARCHAR(20),
EMP_NUM VARCHAR(10)
この例では、Streamオペレータのエラー テーブルの、このサンプルの内容を使用します。
LOADSTARTTIME              DMLSEQ SMTSEQ SOURCESEQ DATASEQ ERRORCODE
-------------------------- ------ ------ --------- ------- ---------
2018-01-24 17:35:26.000000 1      1      1         1       2617

ERRORMSG                                    
--------------------------------------------------------------------------------
Overflow occurred computing an expression involving STREAM_TARGET_EMP_TABLE.COL2

ERRORFIELD HOSTDATA
---------- ----------------------------------------------------
0          000B0020202020202020202020310A0031323820202020202020

ROWINSERTTIME
--------------------------
2018-01-24 17:35:29.360000
  • z/OS以外のプラットフォームでコマンドを実行する際には、以下のtwbertbl構文例を使用してください。
    twbertbl -h <TdpId> -u <UserName> -t <ErrorTableName>
             -n <NumberOfLoadedColumns> -o <OutputFileName>
  • On z/OSでは、JCL内で以下の構文例を使用します。
    //TWBERTBL EXEC PGM=TWBERTBL,
    // PARAM='-h TDP0 -u MyUser -p MyPass -n 2 -t StreamOpErrTbl
    //        -o DD:DATA'
  • 抽出後、出力ファイル名の内容は、区切り記号文字で区切られて次のように表示されます。
    2018-01-24 17:35:26.000000|2018-01-24 17:35:29.360000|1|1|1|1|0|2617|Overflow occurred computing an expression involving STREAM_TARGET_EMP_TABLE.COL2|          1|128

出力ファイル名の最初のフィールドは、Queue Insertion TimeStamp (QITS)です。この値は、ジョブが開始された時間を示します。再始動時には、ジョブが再始動された時間を示します。

2番目のフィールドは、Streamオペレータのエラー テーブルに行が挿入された時間を示します。

3番目のフィールドは、エラーが発生したDMLグループに割り当てられた連番です。

4番目のフィールドは、エラー発生時に実行していたDMLグループ内のDML文に割り当てられた連番(上記DMLSeq列の説明と同じ)です。

5番目のフィールドは、エラーが発生した入力ソース(DataSeq番号)の行に割り当てられた連番です。

6番目のフィールドは、エラーが発生した入力ソースに割り当てられた連番です。

7番目のフィールドは、エラーを引き起こしたフィールドです。現在データベースには、データ エラーのレコードでどのフィールドがエラーを引き起こしたかをTPT Streamオペレータに知らせる手段がないため、このフィールドは必ず0に設定します。ただし、エラー メッセージでは、データ エラーを引き起こした列名を示すことができます。

8番目のフィールドは、エラー コードです。

9番目のフィールドは、エラー メッセージです。

残りのフィールドは、各エラーのデータ レコードの列値です。