DELETESOURCE
DELETESOURCEディレクティブを使用すると、一致する条件に基づいてデータセットからレコードを削除でき、ソース・システムで削除対象としてマークされたレコードがデータ処理ジョブから除外されます。
DELETESOURCEディレクティブは、削除を追跡するソース・データセットに基づいて、データセット変換中にレコードを削除します。
ハード削除
DELETESOURCEディレクティブは、一致条件に基づいてデータセットからのレコードの削除を指定します。 データセット定義内でディレクティブを適用して、ソース・システムで削除のフラグが設定されたレコードの削除を処理します。 DELETESOURCEを使用すると、削除対象としてマークされたレコードがデータセットから除外されるようにすることで、データセットに直接影響します。 この方法では、削除するレコードを含むサブトレーンド(削除セット)データセットを指定する必要があります。 照合条件は、削除セットのレコードをターゲット・データセット内のレコードに関連付けるために使用されます。 IMPORT SOURCE SALES_LOG FILTEREDBY (ACTION = 'D') AS SALES_DEL;
IMPORT SOURCE SALES;
DEFINE DATASET SALES_F
ROWSOURCE SALES;
THIS = SALES;
DELETESOURCE SALES_DEL [SALES_ID] MATCHING [SALES_ID];
END;
この例では、DELETESOURCEディレクティブは、ソース・システムからの削除を追跡するSALES_DELデータセットの一致するSALES_ID値に基づいて、SALESデータセットからレコードを削除します。
ソフト削除
DELETETYPE[SOFT]フラグは、レコードを削除済としてマークし、DELETESOURCEディレクティブは、削除するレコードを含むソース・データセットを識別します。IMPORT SOURCE SALESDEL
IMPORT SOURCE SALES
DEFINE UPDATEABLE DATASET SALES_F
ROWSOURCE SALES;
THIS = SALES;
DELETETYPE[SOFT[SALESDELETED]];
DELETESOURCE SALESDEL[SALES_ID] MATCHING [SALES_ID];
END
この例では、DELETESOURCEディレクティブは、SALESDELデータセットのSALES_ID値と一致するレコードをSALESから削除します。 DELETETYPE[SOFT[SALESDELETED]]フラグは、削除されたレコードにマークを付けますが、データセットから物理的に削除されません。