生成されるSQL INSERT文 - Parallel Transporter

Teradata Parallel Transporter ユーザー ガイド

Product
Parallel Transporter
Release Number
16.20
Published
2018年4月
Language
日本語
Last Update
2018-09-07
dita:mapPath
ja-JP/eho1512702793064.ditamap
dita:ditavalPath
ja-JP/eho1512702793064.ditaval
dita:id
B035-2445
Product Category
Teradata Tools and Utilities

Teradata PTでは、スクリプト サイズを減らして、キーストロークのミスをなくすための機能がもう1つサポートされています。 ターゲット テーブルが指定されている場合、またはスクリプトからターゲット テーブルを確実に判断できる場合には、この機能によってSQL INSERT文が生成されます。 例として、スクリプトでSQL INSERT文を次のよう記述します。

$INSERT 'Invoice_Counts'

Teradata DatabaseテーブルInvoice_Countsには4つの列、I1、I2、I4、I8があり、Teradata PTはスクリプトの"$INSERT 'Invoice_Counts'"に、生成された次のSQL INSERT文を代入します。

 'INSERT INTO Invoice_Counts VALUES (
           :I1,
           :I2,
           :I4,
           :I8);'

ユーザー自身で名前を付けたジョブ変数を使用してターゲット テーブルを確認するという方法もうまくいきます。例:

$INSERT  @Insert1

これにより、Teradata PTはジョブ変数'Insert1'の値を、生成されたINSERT文内のTeradata Databaseテーブルの名前として使用します。 ジョブ スクリプトでTeradata DatabaseテーブルのSQL INSERT文が必要な場合、一般にそのTeradata Databaseテーブルに含まれる列が多いほど$INSERTマクロが役立ちます。

テーブルを指定する$INSERTマクロを使用すると、次のようなAPPLY文を記述できます。

   STEP LOAD_QRTRS
   (
     APPLY

       CASE

         WHEN( TRANS_DATE <= '2011-03-31' )

           THEN  $INSERT 'Q1_Trans'

         WHEN( TRANS_DATE <= '2011-06-30' )

           THEN  $INSERT 'Q2_Trans'

         WHEN( TRANS_DATE <= '2011-09-30' )

           THEN  $INSERT 'Q3_Trans'

         ELSE  $INSERT 'Q4_Trans'

       END

     TO OPERATOR( $LOAD() )

     SELECT * FROM OPERATOR( $FILE_READER() );
   );

Teradata PTが次の手順でターゲット テーブルを特定できる場合、どのジョブ ステップにおいても、Teradata Databaseテーブル指定子を付けずに$INSERTを使用できます。

  • 次のジョブ スコープ ジョブ変数
    TargetTable

    に値が割り当てられている場合、生成されたSQL INSERT文でターゲット テーブルとしてその値が使用されます。

  • ジョブ ステップで参照されるConsumerオペレータの'TargetTable'属性が単一のターゲット テーブルを集合的に特定していると、生成されたSQL INSERT文でそのテーブルがターゲット テーブルになります。
    $LOADや$UPDATEなどのConsumerオペレータ テンプレートを使用する場合、TargetTable属性は、ジョブ変数ファイルのスクリプト内か、ジョブ ステップ内でConsumerオペレータの属性仕様の一部として、明確に指定する必要があります。指定しない場合、TPTはSQL INSERT文を生成するためにTargetTable属性値を取得することができません。

テーブル指定子のない$INSERTインスタンスのターゲット テーブルが曖昧であるか、またはまったく特定できない場合には、Teradata PTは説明のエラー メッセージを表示し、ジョブを終了します。