Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
🖥 JCL

JCL DD Statement

Intermediate 🕑 25 min read 👁 1 views

DD Statement Overview

The DD (Data Definition) statement defines the data sets used by a program. It's the most complex JCL statement with many parameters.

DD Statement Syntax

//ddname DD parameters

Key DD Parameters

ParameterDescription
DSN/DSNAMEData set name
DISPData set disposition
UNITDevice type
VOLVolume serial
SPACESpace allocation
DCBData control block parameters
SYSOUTSystem output class

DISP Parameter

DISP=(status,normal-end,abnormal-end)

Status values:

  • NEW - Create new data set
  • OLD - Exclusive access to existing
  • SHR - Shared access to existing
  • MOD - Add to end of existing or create

Disposition values:

  • DELETE - Delete data set
  • KEEP - Keep data set
  • CATLG - Catalog data set
  • UNCATLG - Uncatalog data set
  • PASS - Pass to next step

SPACE Parameter

SPACE=(unit,(primary,secondary,directory),RLSE)
  • TRK - Tracks
  • CYL - Cylinders
  • blksize - Block size

DCB Parameter

DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)
  • RECFM - Record format (F, FB, V, VB)
  • LRECL - Logical record length
  • BLKSIZE - Block size

Code Example

//INPUT    DD DSN=MY.INPUT.FILE,DISP=SHR
//*
//OUTPUT   DD DSN=MY.OUTPUT.FILE,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,
//            SPACE=(CYL,(10,5),RLSE),
//            DCB=(RECFM=FB,LRECL=100,BLKSIZE=0)
//*
//* TEMPORARY DATA SET
//TEMP     DD DSN=&&TEMPFILE,
//            DISP=(NEW,PASS),
//            SPACE=(TRK,(5,1))
//*
//* SYSOUT - PRINT OUTPUT
//SYSPRINT DD SYSOUT=*
//REPORT   DD SYSOUT=A
//*
//* INSTREAM DATA
//SYSIN    DD *
INPUT DATA LINE 1
INPUT DATA LINE 2
/*
//*
//* CONCATENATED DATA SETS
//INPUT    DD DSN=FILE1,DISP=SHR
//         DD DSN=FILE2,DISP=SHR
//         DD DSN=FILE3,DISP=SHR
//*
//* GDG - GENERATION DATA GROUP
//GDGOUT   DD DSN=MY.GDG.FILE(+1),
//            DISP=(NEW,CATLG,DELETE)
//GDGIN    DD DSN=MY.GDG.FILE(0),DISP=SHR
//*
//* DUMMY DD
//OPTIONAL DD DUMMY
//*
//* REFERBACK
//FILE2    DD DSN=*.STEP01.OUTPUT,DISP=SHR