🖥 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
| Parameter | Description |
|---|---|
| DSN/DSNAME | Data set name |
| DISP | Data set disposition |
| UNIT | Device type |
| VOL | Volume serial |
| SPACE | Space allocation |
| DCB | Data control block parameters |
| SYSOUT | System 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