再定義データは、同じストレージ域に対して、レコード・タイプに基づいて代替レコード・レイアウトを使用します。
再定義データを読み取るには、レコードの各タイプごとに関連するビューを持つ表を定義します。再定義データの挿入、更新、削除、またはその変更のキャプチャーをするには、各レコード・タイプごとに個別の表を定義します。
再定義データ用にマップする各表には、共通のキー情報を識別する列およびタイプ・コード・フィールド用の 1 つの列が含まれている必要があります。これらの列の後ろには、タイプ固有の列が続きます。
以下の PL/I の例では、UNION 属性が同じストレージ域に対して 2 つの代替レコード・マッピングを定義します。RECORD_TYPE 変数は、続くデータが従業員情報を記述するのかそれともアドレス情報を記述するのかを指定します。
DCL 01 EMPLOYEE_ADDRESS_RECORD, 05 EMP_ID CHAR(6), 05 RECORD_TYPE CHAR(1), 05 RECORD_INFO UNION, 10 EMPLOYEE_INFORMATION, 15 LAST_NAME CHAR(20), 15 FIRST_NAME CHAR(20), 15 DATE_OF_BIRTH PIC '(8)9', 15 MONTHLY_SALARY DECIMAL(7,2), 15 FILLER CHAR(48), 10 ADDRESS_INFORMATION, 15 ADDRESS_LINE_1 CHAR(30), 15 ADDRESS_LINE_2 CHAR(30), 15 ADDRESS_CITY CHAR(20), 15 ADDRESS_STATE CHAR(2), 15 ADDRESS_ZIP PIC '(5)9';
再定義データの処理の追加例については、レコード・タイプおよび COBOL の例を参照してください。