以下の例は、上述のDELETEタスク例と同じ目的を達成しますが、少し異なる手法を使用します。 削除基準にハード コーディングされた値を使用するのではなく、この例の値は、DataConnectorオペレータとデータ ストリームによって外部ファイルから供給されます。 SQLホスト変数(:CustNo)は、DELETE文の値を表わします。
この場合、Updateオペレータは、データ ストリームから入力を受け取るので、DELETEタスクとして使用される Consumerオペレータです。 このアプローチと最初の例との違いを太字で示します。
DEFINE JOB DELETE_TASK_PARAM
DESCRIPTION 'External File DELETE FROM CUSTOMER TABLE'
(
DEFINE SCHEMA CUST_NUM_SCHEMA
DESCRIPTION 'CUSTOMER NUMBER SCHEMA'
(
Cust_Num INTEGER
);
DEFINE OPERATOR UPDATE_OPERATOR
DESCRIPTION 'Teradata PT UPDATE OPERATOR'
TYPE UPDATE
SCHEMA CUST_NUM_SCHEMA
ATTRIBUTES
(
VARCHAR TargetTable = 'Customer',
VARCHAR TdpId = @Tdpid,
VARCHAR UserName = @Userid,
VARCHAR UserPassword = @Pwd,
VARCHAR AccountId,
VARCHAR LogTable = 'DeleteTask_log',
VARCHAR DeleteTask = 'Y'
);
DEFINE OPERATOR DATA_PRODUCER
DESCRIPTION 'DATA CONNECTOR OPERATOR'
TYPE DATACONNECTOR PRODUCER
SCHEMA CUST_NUM_SCHEMA
ATTRIBUTES
(
VARCHAR OpenMode = 'Read',
VARCHAR Format = 'Formatted',
VARCHAR IndicatorMode,
VARCHAR FileName = 'Single_Row_File'
);
APPLY
(
'DELETE FROM CUSTOMER WHERE CUSTOMER_NUMBER LT :CustNo')
TO OPERATOR (UPDATE_OPERATOR [1])
SELECT * FROM OPERATOR (DATA_PRODUCER[1]);
);