UpdateオペレータのDELETEタスク オプションを使用すると、APPLY文の構造に応じて、ConsumerオペレータまたはStandaloneオペレータのどちらかとして実行できます。
- データ ストリームからの行の取得を試行しないStandaloneオペレータとして実行する場合:
APPLY <SQL DELETE statement>
- データ ストリームからの行の読み取りを試行するConsumerオペレータとして実行する場合:
APPLY <SQL DELETE statement> SELECT FROM …
APPLY文に以下の単一DELETE文を指定します。
APPLY ( 'DELETE FROM TABLE xyz;' ) ;
この場合、UpdateオペレータはStandaloneオペレータとして実行されます (UpdateオペレータはConsumerオペレータであり、Producerオペレータがないので、SELECT文はありません)。
DELETEの情報でデータを要求するDELETE文を指定することもできます。 この場合は、APPLYに以下のようなSELECT文が必要です。
APPLY ( 'DELETE FROM TABLE xyz WHERE Field1 = :Field1;' ) SELECT * FROM OPERATOR (FILE_READER [1] . . . ;
この場合、UpdateオペレータはConsumerオペレータとして実行され、1行のデータのみを要求します。 そのデータ行はTeradata Databaseに渡され、WHERE句で指定されたように列からデータを抽出します。
以下のもう1つの例は、最初の例とよく似ており、UpdateオペレータはStandaloneオペレータとして実行されますが、DELETE文にWHERE句が含まれます。
APPLY ( 'DELETE FROM TABLE xyz WHERE Field1 = ''abc'';' ) ;
この場合、WHERE句がありますが、WHERE句の情報はプロデューサ オペレーのデータを必要としません。
UpdateオペレータがStandaloneオペレータとして実行される場合、スキーマは必要ありません。 つまり、DEFINE SCHEMA文を使用してスキーマを定義する必要はありません。 これは、ジョブのProducerオペレータのデータが必要とされないからです。