17.10 - 構文 - 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
日本語 (日本)

APPLY文で使用する構文要素は、下記の構文図に表示されているとおりの順序で入力する必要があります。







































構文規則:

構文要素 説明
* 特定のデータ ソース オブジェクトからすべての列を選択することを指定します。
|| この連結演算子は、2つの文字列を1つの文字列に結合します。
$DDL Data Definition Language (DDL) (スタンドアロン)オペレータにTeradata PTが提供するテンプレートの名前。
$DELETER テーブルの行の削除に使用されるUpdate StandaloneオペレータにTeradata PTが提供するテンプレートの名前。
$EXPORT Export (プロデューサ)オペレータにTeradata PTが提供するテンプレートの名前。
$FE_OUTMOD FastExport OUTMOD Adapter (コンシューマ)オペレータにTeradata PTが提供するテンプレートの名前。
$FILE_READER DataConnector ProducerオペレータにTeradata PTが提供する、より説明的なテンプレートの名前。
$FILE_WRITER DataConnector ConsumerオペレータにTeradata PTが提供する、より説明的なテンプレートの名前。
$FL_INMOD FastLoad INMOD Adapter (プロデューサ)オペレータにTeradata PTが提供するテンプレートの名前。
$INSERT SQL INSERT文のTeradata PTジョブ スクリプト「プレースホルダ」。このSQL INSERT文は、以下に基づいてTeradata PTで生成されます。
  • 指定時に識別されているターゲット テーブル'tableName'の列定義、または
  • Teradata PTが、さまざまな従来型ジョブ変数への割り当て、またはConsumerオペレータ属性に関連するスクリプト割り当てにより識別できるターゲット テーブル。

生成されたSQL INSERT文は、ジョブ スクリプトで$INSERTプレースホルダを置き換えます。

$INSERTER SQL Inserter (コンシューマ)オペレータにTeradata PTが提供するテンプレートの名前。
$LOAD Load(コンシューマ)オペレータにTeradata PTが提供するテンプレートの名前。
$ML_INMOD MultiLoad INMOD Adapter (プロデューサ)オペレータにTeradata PTが提供するテンプレートの名前。
$ODBC ODBC (プロデューサ)オペレータにTeradata PTが提供するテンプレートの名前。
$OS_COMMAND OS Command (スタンドアロン)オペレータにTeradata PTが提供するテンプレートの名前。
$SCHEMAP Schema Mapping(コンシューマ)オペレータにTeradata PTが提供するテンプレートの名前。
$SELECTOR SQL Selector (プロデューサ)オペレータにTeradata PTが提供するテンプレートの名前。
$STREAM Stream(コンシューマ)オペレータにTeradata PTが提供するテンプレートの名前。
$UPDATE Update(コンシューマ)オペレータにTeradata PTが提供するテンプレートの名前。
AND 論理演算の“and"を示します。
ARRAY SUPPORT APPLY文内でStreamオペレータに関連付けられたDMLグループに対して配列サポート機能を使用するかどうかを示します。
  • ONの値は、配列サポート機能を使用することをStreamオペレータに指示します。 属性値がリセットされていない限り、ONがデフォルトです。
  • OFFの値は、配列サポート機能を使用しないことをStreamオペレータに指示します。 ARRAY SUPPORT DMLオプションが指定されている場合、StreamオペレータのArraySupport属性の値がオーバーライドされます。

ARRAY SUPPORT DMLオプションが指定されていない場合、DMLグループに対する配列サポートのデフォルト値は、StreamオペレータのArraySupport属性の値になります。 StreamオペレータのArraySupport属性の値が指定されていない場合でも、この機能に対する基本のシステム要件が満たされていれば、機能は有効になります。

Stream オペレータのArraySupport属性の詳細については、Streamオペレータを参照してください。

DML文がUPSERT文である場合は、「Atomic形式」で指定する必要があります。 この方法では、Array Support構文の直前に示されているINSERT FOR MISSING ROWSオプションを使用して、一対のINSERT ... UPDATE文が使用されます。 詳細は、配列サポートを参照してください。

エラー:

ARRAY SUPPORTオプションに指定された値が有効でない場合、操作はエラーによって終了します。

ARRAY SUPPORTの値が‘On’に設定されていて、データベースまたはCLIv2のどちらかで配列サポート機能がサポートされていない場合、Stream オペレータは致命的なエラーによって終了します。

配列サポート機能は、単一のDML文にのみ適用されます。 ARRAY SUPPORT DMLオプションがONの場合、Streamオペレータは、単一のAPPLY文内に複数のDML文を検出すると、エラーによって終了します。

AS 任意。派生列(式の計算結果の値を持つ列)に関連付ける列名を指定します。
attributeName オペレータ属性名。属性には、ジョブ実行がジョブ スクリプトのこのポイントに到達したときに値が割り当てられます。
attributeValue オペレータ属性に割り当てられる値。ジョブ実行がジョブ スクリプトのこのポイントに到達したときに、指定どおりに割り当てられます。
配列値をサポートしている属性では、attributeValueに配列を指定することもできます。配列値をサポートしている属性の説明については、各オペレータに関する、DataConnectorオペレータで始まるトピックを参照してください。
ATTRIBUTES ATTR オプション。オペレータ指定で参照されているオペレータの値割り当てリストを指定します。
CASE CASE式では、CASEは、1つ以上の条件式を指定します。検索条件がTRUEの最初の(左から右の順で)値が、CASE式の値になります。 TRUEである検索条件が存在しない場合、CASE式の値はELSE式の値になり、ELSE式が存在しない場合、値はNULLになります。

CASE DML式では、CASEは、1つ以上の条件DMLグループを指定します。検索条件がTRUEの最初の(左から右の順で)値が、APPLY文のターゲットに適用されます。 TRUEである検索条件が存在せず、ELSE句が存在する場合、DMLグループがターゲットに適用されます。ELSE句が存在しない場合、いずれのDMLグループも適用されません。

CAST (NULL AS dataType) このビルトイン関数は、指定されたデータ型で値NULLを返します。
columnName オプションの列名指定。列名は、APPLY文のAPPLY TOまたはSELECT FROMセクションで参照されているオペレータのSCHEMA属性などですでに指定されている場合があります。
consumerOperatorName ジョブ スクリプトのDEFINE OPERATOR文に定義されるConsumerオペレータの名前。
database マクロを実行するデータベースの名前。
DELETE/DEL マクロによってDELETE文が実行されることを示すキーワード。
'DMLstring' SQL INSERT、UPDATE、およびDELETE文の、必須の有効な構文およびセマンティック。
ELSE CASE式では、ELSEキーワードは、TRUEであるCASE式検索条件が存在しない場合に値がCASE式の値になる式を指定します。

CASE DML式では、ELSEキーワードは、TRUEであるCASE DML式検索条件が存在しない場合に適用されるDMLグループを指定します。

ELSE NULL CASE式の任意選択の無条件デフォルトNULL値、またはCASE DML式の任意選択の無条件デフォルト「アクションなし」を明示的に指定します。
END CASE式では、ENDは、CASE式の終わりを示します。

CASE DML式では、ENDは、条件DMLグループのCASEグループの終わりを示します。

EXECUTE EXECUTE文は、TPTStream オペレータに対してのみ適用されます。
FALSE 論理値の"false"を示します。
filterOperatorName ジョブ スクリプトのDEFINE OPERATOR文に定義されるフィルタ オペレータの名前。
FROM 選択操作のソースを示します。
INSERT/INS マクロによってINSERT文が実行されることを示すキーワード。
INSERT FOR UPDATEの対象となる行が見つからない場合に、対応するINSERTを適用します。Updateオペレータとストリーム オペレータでのみ有効です。
このオプションは、DMLグループが単一のUPDATE文とその後に続く単一のINSERT文で構成されている場合にのみ適用されます。これらのキーワードの後に、このオプションの指定を終了する(キーワードどおりのことを意味する)以下のいずれかのキーワードが続きます。
  • ROWS
  • MISSING UPDATE ROWS

INSERT FOR ROWSまたはINSERT FOR MISSING UPDATEオプションを使用する場合は、欠落している更新行がエラー テーブルに挿入されないようにするために、IGNORE MISSING UPDATE ROWS DMLオプションを使用します。

instanceCount 並列オペレータ インスタンスの数を指定します。 デフォルトは1です。 1つのジョブ ステップ内で同じオブジェクトの複数のインスタンスを指定する場合は必須です。
IS 論理テストを示します。
macro name データベース内にある、実行するマクロの名前。
mantissa 'E' exponent 標準の科学表記法で表現される数値定数。
MARKまたはIGNORE これらのキーワードが特定の条件(通常は一般的なデータベース エラー)に関連付けられている場合に、ソース行をエラー テーブルに入れる(MARK)か、またはエラー テーブルに入れない(IGNORE)ように指示します。
  • 次のようにDUPLICATEが後続する場合、MARKは、行がターゲット テーブルの既存の行と重複するときに、その行をエラー テーブルに挿入するように指示します(Stream オペレータおよびUpdateオペレータで有効)。
    • MARK DUPLICATE ROWS (挿入操作と更新操作の両方)
    • MARK DUPLICATE INSERT ROWS (挿入操作のみ)
    • MARK DUPLICATE UPDATE ROWS (更新操作のみ)
    行内のすべての列値が別の行の値とまったく同じ場合、その行は重複行です。テーブルがマルチセット テーブル(重複行が許容される)である場合、またはテーブルに1つ以上の一意のインデックスがある(固有性テストによって重複行チェックが不要になる)場合、重複行チェックはバイパスされます。そのような場合、「IGNORE DUPLICATE ROWS」は影響を及ぼしません。固有性違反がある場合、問題のある行がエラー テーブルに記録されます。
  • 次のようにMISSSINGが後続する場合、MARKは、変更対象または削除対象の行がターゲット テーブルに存在しないときに、その行をエラー テーブルに挿入するように指示します(StreamオペレータおよびUpdateオペレータで有効)。
    • MARK MISSING ROWS (更新操作と削除操作の両方)
    • MARK MISSING UPDATE ROWS (更新操作のみ)
    • MARK MISSING DELETE ROWS (削除操作のみ)
  • 次のようにEXTRAが後続する場合、MARKは、行がターゲット テーブルの複数の行を変更または削除するときに、その行をエラー テーブルに挿入するように指示します(Streamオペレータで有効)。
    • MARK EXTRA ROWS (更新操作と削除操作の両方)
    • MARK EXTRA UPDATE ROWS (更新操作のみ)
    • MARK EXTRA DELETE ROWS (削除操作のみ)

上記のすべてについて、MARKの代わりにIGNOREを指定した場合、行はエラー テーブルに挿入されません。

nonQuote Character 単一引用符(')以外の文字。
NOT 論理否定を示します。
NULL 適用される要素が存在しないことを示します。
NULL (dataType) CAST (NULL as dataType)と同じ。
OPERATOR Teradata PTオペレータを示します。
OR 論理演算の"or"を示します。
producerOperatorName ジョブ スクリプトのDEFINE OPERATOR文に定義されるProducerオペレータの名前。
schemaName ジョブ スクリプトのDEFINE SCHEMA文に定義されるTeradata PTスキーマの名前。
SELECT Teradata PTデータ移動操作の選択オプションを示します。
SERIALIZE ON 逐次化機能を呼び出します。この機能により、指定された列での操作が連続的に実行されます。 Streamオペレータでのみ有効です。
standaloneOperatorName ジョブ スクリプトのDEFINE OPERATOR文に定義されるStandaloneオペレータの名前。
tableName 既存のテーブルの名前。この名前の列定義は、Teradata PTで生成されるDEFINE SCHEMA文の基底となります。
THEN CASE式では、THENは、条件式の検索条件に対応する値式を指定します。

CASE DML式では、THENは、対応するWHENキーワードの検索条件が、検索された最初のTRUE条件である場合に適用するDMLグループを指定します。

TO 更新操作のターゲットを示します。
TRUE 論理値の"true"を示します。
UNION ALL 複数ソースからのデータの結合および並列処理を可能にします。
UNKNOWN 1つ以上のオペランドがNULL値であるために真偽を判断できない論理述部値を示します。
unsigned integer 先頭に“+"記号も“-"記号も付いていない整数。
UPDATE/UPD マクロによってUPDATE文が実行されることを示すキーワード。
UPSERT/UPS マクロによってAtomic Upsertが実行されることを示すキーワード。
USE APPLY処理時にDMLグループ内のSQL文が実行される場合にデータベースに送信される列名を指定します。Stream オペレータでのみ有効です。
userDefined ConsumerTemplateName ユーザー作成のConsumerオペレータのテンプレートの名前。
userDefinedFilterTemplateNa me ユーザー作成のフィルタ オペレータのテンプレートの名前。
userDefinedProducerTemplate Name ユーザー作成のProducerオペレータのテンプレートの名前。
userDefinedStandaloneTempl ateName ユーザー作成のStandaloneオペレータのテンプレートの名前。
VIA Producerオペレータで処理された後のデータをフィルタリング/修正/変更するフィルタ オペレータを指定します。

VIA句は、APPLYキーワードとSELECTキーワードの間に指定します。

APPLY 
( ... 
) 
TO OPERATOR ( consumer_operator [ n]) 
VIA OPERATOR (filter_operator [n]) 
SELECT... FROM OPERATOR (producer_operator [n]);