Reusable JCL collection
Previous topic | Next topic | Contents | Glossary | Contact z/OS | PDF


Coding JCL: Data set types and name syntax

Reusable JCL collection

Naming and syntax rules for coding data set names vary depending on the type of data set you are identifying. Use this summary to determine the type of data set and its corresponding syntax for the DSNAME parameter value.

Table 1 lists the different types and examples of correctly coded names. Unless another resource is noted in the table, z/OS® MVS™ JCL Reference (SA22-7597) is the definitive source for complete details about the data set types and permissible names, along with syntax rules.
Table 1. Summary of data set types and correctly coded DSNAME (DSN) parameter values
Type of data set DSNAME (DSN) parameter value formats and examples
Permanent Unqualified names: One through 8 alphanumeric or special ($, #, @) characters, a hyphen, or a character X'C0'. The first character must be alphabetic or special ($, #, @).
Example of an unqualified name:
DSNAME=ALPHA
Qualified names: Multiple unqualified names joined by periods. Each qualifier is coded like an unqualified name; therefore, the name must contain a period after every 8 characters or fewer. The maximum length of a qualified data set name is:
  • 44 characters, including periods.
  • For a generation data group, 35 characters, including periods.
  • For an output tape data set, 17 characters, including periods.
Example of a qualified name:
DSNAME=ALPHA.PGM
RACF-protected data sets: Use the same format as for a qualified name, and make sure the high-level qualifier of the name is defined to RACF®. Further details are documented in z/OS Security Server RACF Security Administrator's Guide (SA22-7683).
Formats for names of cataloged data sets:
dsname
dsname(member)
dsname(gen_data_group)
dsname(INDEX | PRIME | OVFLOW)
Example for a cataloged data set:
DSNAME=LIB1(PROG12)
Further details are documented in z/OS DFSMS™ Access Method Services for Catalogs (SC26-7394).
Temporary When you define a temporary data set, you can code the DSNAME parameter or omit it; in either case, the system generates a qualified name for the temporary data set.
When you use the DSNAME parameter for a temporary data set, code the name as two ampersands (&&) followed by a character string 1 to 8 characters in length:
  • The first character following the ampersands must be alphabetic or special ($, #, @).
  • The remaining characters must be alphanumeric or special ($, #, @).
Formats for temporary data set names:
&&dsname
&&dsname(member)
&&dsname(INDEX | PRIME | OVFLOW)
Example for a temporary data set:
//DD3 DD DSNAME=&&WORK,UNIT=3420
In-stream or system output (sysout) When defining an in-stream or sysout data set, you can code the DSNAME parameter or omit it; if omitted, the system generates a name for the data set.

The data set name for in-stream and sysout data sets consists of two ampersands (&&) followed by one through eight 8 alphanumeric or special ($, #, @) characters, a hyphen, or a character X'C0'. The first character following the ampersands must be alphabetic or special ($, #, @).

Example for an in-stream data set:
//DDIN DD DATA,DSNAME=&&PAYIN1
Example for a sysout data set:
//DDOUT DD DSNAME=&&PAYOUT1,SYSOUT=P
Backward reference A backward reference is a reference to an earlier statement in the job or in a cataloged or in-stream procedure called by this or an earlier job step. A backward reference can be coded in the DSNAME parameter to copy a data set name from an earlier DD statement.
Formats for backward references:
*.ddname 
*.stepname.ddname 
*.stepname.procstepname.ddname 
Example of a backward reference in DD5 statement in STEP2:
//STEP1 EXEC PGM=CREATE 
//DD4   DD DSNAME=&&ISDATA(PRIME),DISP=(,PASS),
//         UNIT=(3350,2),VOLUME=SER=334859,
//         SPACE=(CYL,(10,,2),,CONTIG),DCB=DSORG=IS 
//STEP2 EXEC PGM=OPER 
//DD5   DD DSNAME=*.STEP1.DD4,DISP=(OLD,DELETE)
Dummy data set The parameter NULLFILE specifies a dummy data set. NULLFILE has the same effect as coding the DD DUMMY parameter.




Copyright IBM Corporation 1990, 2010