This example (order1.cbl) just uses the -Fx compiler option to generate the XFD. The compiled program builds the database table shown at the end of this section.
All data from the COBOL program is stored in and retrieved from the database, even though not all fields are explicitly named in the database table. For a description of how this works, see XFDs.
The underlined fields are the only ones entered into the table:
fd p-o-file. 01 p-o-record. 03 p-o-division-number pic 9(3). 03 p-o-record-type pic x. 88 header-record value "h". 88 detail-record value "d". 03 p-o-number pic 9(10). 03 p-o-number-detail redefines p-o-number. 05 picking-ticket-number pic 9(6). 05 shipping-region pic 9(2). 05 p-o-customer-type pic 9(2). 05 p-o-customer-breakdown redefines p-o-customer-type. 07 customer-category pic x. 88 p-o-customer-retail value "r". 88 p-o-customer-whlsale value "w". 07 customer-pay-format pic x. 88 is-net-30 value "3". 88 is-net-10 value "1". 03 p-o-date. 05 p-o-yy pic 9(2). 05 p-o-mm pic 9(2). 05 p-o-dd pic 9(2). 01 p-o-detail-record. 03 p-o-dept-number pic 9(3). 03 p-o-record-type pic x. 03 detail-p-o-number pic 9(10). 03 p-o-shipping-info. 05 p-o-quantity-to-ship pic s9(4) comp. 05 p-o-total-quantity pic s9(4) comp. 03 p-o-notes. 05 notes-line occurs 3 times pic x(40).
As the table is built:
The following table is built in the database:
Column Name | Type |
---|---|
p_o_number | number(10)* |
p_o_dept_number | number(3)* |
p_o_record_type | char(1) |
p_o_quantity_to_ship | number(4)* |
p_o_total_quantity | number(4)* |
notes_line_1 | char(40) |
notes_line_2 | char(40) |
notes_line_3 | char(40) |
* The actual database data type may vary.
See the Limits and Ranges topic for your specific RDBMS for a list of supported data types and their COBOL equivalents.