Skip to content
On this page

COBOL Copybook

cobol

Generate COBOL copybook record definitions from SQL schema

Example Output ​

Generated from the pet-store sample schema:

cobol
*> Generated by @sqldoc/templates/cobol-copybook
      *> DO NOT EDIT

       01  ADOPTIONS-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  PET-ID  PIC S9(9) COMP.
           05  OWNER-ID  PIC S9(9) COMP.
           05  ADOPTED-AT  PIC X(26).
           05  ADOPTION-FEE  PIC S9(8)V9(2) COMP-3.

       01  ADOPTIONS-AUDIT-LOG-RECORD.
           05  WS-ID  PIC S9(18) COMP.
           05  TABLE-NAME  PIC X(255).
           05  OPERATION  PIC X(255).
           05  OLD-DATA  PIC X(4096).
           05  NEW-DATA  PIC X(4096).
           05  CHANGED-AT  PIC X(26).

       01  CATEGORIES-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  WS-NAME  PIC X(255).
           05  DESCRIPTION  PIC X(255).

       01  LEGACY-INVENTORY-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  ITEM-NAME  PIC X(255).
           05  OLD-SKU  PIC X(255).
           05  QUANTITY  PIC S9(9) COMP.

       01  LOCATIONS-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  WS-NAME  PIC X(255).
           05  WS-ADDRESS  PIC X(255).
           05  CITY  PIC X(255).
           05  ZIP  PIC X(255).

       01  MEDICAL-RECORDS-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  PET-ID  PIC S9(9) COMP.
           05  VISIT-DATE  PIC 9(8).
           05  DIAGNOSIS  PIC X(255).
           05  TREATMENT  PIC X(255).
           05  VET-NAME  PIC X(255).

       01  OWNERS-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  WS-NAME  PIC X(255).
           05  EMAIL  PIC X(255).
           05  PHONE  PIC X(255).
           05  CREATED-AT  PIC X(26).

       01  PETS-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  CATEGORY-ID  PIC S9(9) COMP.
           05  WS-NAME  PIC X(255).
           05  SKU  PIC X(255).
           05  PRICE  PIC S9(8)V9(2) COMP-3.
           05  INTERNAL-NOTES  PIC X(255).
           05  WS-STATUS  PIC X(255).
           05  CREATED-AT  PIC X(26).

       01  REVIEWS-RECORD.
           05  WS-ID  PIC S9(9) COMP.
           05  PET-ID  PIC S9(9) COMP.
           05  OWNER-ID  PIC S9(9) COMP.
           05  RATING  PIC S9(9) COMP.
           05  BODY  PIC X(255).
           05  LOCATION-ID  PIC S9(9) COMP.
           05  CREATED-AT  PIC X(26).

       01  STAFF-AUDIT-LOG-RECORD.
           05  WS-ID  PIC S9(18) COMP.
           05  TABLE-NAME  PIC X(255).
           05  OPERATION  PIC X(255).
           05  OLD-DATA  PIC X(4096).
           05  NEW-DATA  PIC X(4096).
           05  CHANGED-AT  PIC X(26).

Usage ​

Add to your sqldoc.config.ts:

typescript
export default {
  dialect: 'postgres',
  schema: ['./schema.sql'],
  codegen: [
    {
      template: 'cobol-copybook',
      output: './generated/COPYBOOK.cpy',
    },
  ],
}

Then run:

bash
sqldoc codegen