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で生成されます。
生成された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グループに対して配列サポート機能を使用するかどうかを示します。
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文で構成されている場合にのみ適用されます。これらのキーワードの後に、このオプションの指定を終了する(キーワードどおりのことを意味する)以下のいずれかのキーワードが続きます。
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)ように指示します。
上記のすべてについて、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]); |