Data Set Names

When you allocate a new data set (or when the operating system does), you must give the data set a unique name. Usually, the data set name is the dsname value in JCL.

The following rules apply to naming data sets:

  • If quotation marks delimit a data set name in a JCL DD statement, JCL processing cannot perform syntax checking on the statement, and SMS rejects the input based on its parsing of the data set name. SMS does not allow the name to be catalogued because quoted data sets cannot be SMS managed.
  • IDCAMS does not allow the specification of non-valid data set names.
  • When you invoke Dynamic Allocation services or directly invoke SVC 26, it is possible to create data set names that are not valid. When the CATALOG routine is called to add the data set to a catalog, there is no way to determine whether the original name was in JCL or whether quotation marks delimit the name. The catalog component validates the syntax of a data set name and fails the request if the syntax is not valid, unless the syntax-checking option for data set names is off. See the description of the MODIFY CATALOG command's DSNCHECK parameter in z/OS DFSMS Managing Catalogs.

A data set name can be from one to a series of twenty-two joined name segments. Each name segment represents a level of qualification. For example, the data set name DEPT58.SMITH.DATA3 is composed of three name segments. The first name on the left (DEPT58 in that example) is called the high-level qualifier, the last is the low-level qualifier.

Each name segment (qualifier) is 1 to 8 characters, the first of which must be alphabetic (A to Z) or national (# @ $). The remaining seven characters are either alphabetic, numeric (0 - 9), national, a hyphen (-). Name segments are separated by a period (.).

Data set names must not exceed 44 characters, including all name segments and periods.

See Naming a Cluster and Naming an Alternate Index for examples of naming a VSAM data set.

Restriction: The use of name segments longer than 8 characters would produce unpredictable results.

You should use only the low-level qualifier GxxxxVyy, in which xxxx and yy are numbers, in the names of generation data sets. Define a data set with GxxxxVyy as the low-level qualifier of non-generation data sets only if a generation data group with the same base name does not exist. However, IBM recommends that you restrict GxxxxVyy qualifiers to generation data sets, to avoid confusing generation data sets with other types of non-VSAM data sets.

For example, the following names are not valid data set names:
  • A name that is longer than 8 characters (HLQ.ABCDEFGHI.XYZ)
  • A name that contains two successive periods (HLQ..ABC)
  • A name that ends with a period (HLQ.ABC.)
  • A name that contains a segment that does not start with an alphabetic or national character (HLQ.123.XYZ)