LIBNAME Statement: z/OS

Assigns a SAS libref and an engine to a SAS library.
Valid in: Anywhere
z/OS specifics: libref, engine, physical-filename, library-specification, engine/host-options
See: LIBNAME Statement in SAS Statements: Reference

Syntax

LIBNAME libref <engine> <'<file-system-prefix> physical-filename'> <engine/host-options> ;
LIBNAME libref <engine> <(library-specification, ..., library-specification-n)>
<engine/host-options> ;
LIBNAME libref | _ALL_ CLEAR;
LIBNAME libref | _ALL_ LIST;

Details

Overview of the LIBNAME Statement

The LIBNAME statement can be used to assign a SAS library, deassign a library assignment, or display a list of all library assignments. The LIBNAME function provides similar functionality.
You can set the DLCREATEDIR system option to create the directory for the SAS library that is specified in the LIBNAME statement if that directory does not exist. For more information, see the DLCREATEDIR System Option: z/OS.
The first two preceding syntax diagrams are used for assigning SAS libraries. The last two are used for deassigning libraries and for listing library assignments. The following topics contain information about the specified LIBNAME statement forms:
For more information, see the LIBNAME Function in SAS Functions and CALL Routines: Reference.

LIBNAME Statement Forms for Assigning Libraries

The LIBNAME statement enables you to identify a library to SAS, specify which engine SAS should use to process the library, and identify the z/OS resources that are required to process the library. For a complete discussion of assigning libraries, see Assigning SAS Libraries. For direct or sequential access bound libraries, the LIBNAME statement can be used to specify the necessary options to allocate the library data set. For information about z/OS allocation as it relates to SAS libraries, see Allocating the Library Data Set.
Note: If an error is detected by SAS while it is processing a LIBNAME statement, then the SAS session return code will be unaffected unless the SAS system option ERRORCHECK=STRICT is specified.
The form of the LIBNAME statement that is used to assign a SAS library is described in the following list. For examples of assigning libraries, see Assigning an Existing Bound Library.
LIBNAME libref <engine> <'<file-system-prefix> physical-filename'> <engine/host-options> ;
LIBNAME libref <engine> <(library-specification-1, ..., library-specification-n)>
<engine/host-options'> ;
libref
is a SAS name that identifies the library. The libref can be a maximum of eight characters. The first character must be a letter (A–Z) or an underscore. The remaining characters can be any of these characters or numerals 0–9. This libref is used to reference the library throughout SAS.
If the specified libref is already assigned, SAS deassigns the libref before performing the specified assignment.
If a LIBNAME statement is specified without a physical filename and without a list of library specifications, the libref is assumed to refer to a z/OS ddname that is allocated to a single z/OS data set or UFS directory. This allocation must be established external to SAS in the job step or TSO session in which the SAS session is running. For more information, see Allocating the Library Data Set and Assigning SAS Libraries Externally.
Note: SAS 9.2 for z/OS supports libref names that begin with or contain underscores. For example, libref names with formats such as libref_name, _librefname, or _libref_name are now supported. Unlike filerefs, librefs cannot include the special characters $, @, and #.
engine
specifies which engine to use to access the SAS library.
A native library engine is an engine that accesses forms of SAS files that are created and processed only by SAS. For a list of some of the native library engines that can be specified in the LIBNAME statement, see SAS Library Engines. For general information about these engines and other engines, see SAS Engines in SAS Language Reference: Concepts.
It is generally necessary to specify the engine only when creating a library that is processed by an engine other than the default engine that is indicated by the ENGINE= System Option: z/OS or the SEQENGINE= System Option: z/OS. For existing libraries, SAS can examine the format of the library to determine which engine to use. For complete details about how SAS selects an engine when an engine is not specified, see How SAS Assigns an Engine.
Note:
  • The V5 and V5TAPE engine names can be specified in the LIBNAME statement. These engines are still supported for read-only access to existing libraries in those formats.
  • When you assign a data-in-virtual (DIV) library that was created with the V6 engine, the V6 engine must be explicitly specified. Otherwise, the BASE engine for the current SAS release is used instead. For more information about DIV libraries, see Creating Hiperspace Libraries.
physical-filename
specifies the physical name of the library. The physical-filename syntax element and its enclosing quotation marks can be omitted entirely. However, if a quoted string is specified after the libref and engine, the physical-filename that is enclosed in quotation marks must not have a length of zero. A z/OS data set name or a UFS path can be specified for physical-filename. If a file system prefix was not specified to indicate whether the physical name refers to a z/OS data set or a UFS path, SAS assumes that the physical name refers to a UFS path if any of the following conditions are true:
  • The LIBNAME host option HFS is specified.
  • The SAS system option FILESYSTEM=HFS is in effect.
  • The physical name specified contains a slash (/) or a tilde (~).
Otherwise, SAS assumes that the physical name refers to a z/OS data set.
The physical-filename and its file-system-prefix, can be specified in single quotation marks, as indicated in the syntax diagram, or they can be specified in double quotation marks instead.
For a library that resides in a z/OS data set, the physical name of the library data set can be specified in one of the following ways:
  • a fully qualified data set name. For example:
     'user934.mylib.saslib'
  • a partially qualified data name. For example, if the value of the SYSPREF option is USER934, the following specification is equivalent to the preceding example:
    '.mylib.saslib'
    For more information, see SYSPREF= System Option: z/OS.
  • a temporary data set name specified as an ampersand (&), followed by one alphabetic character, and up to seven additional alphanumeric or special ($, #, or @) characters. For example:
    '&tmp#lib1'
    This specification always creates a new temporary library, even if you have already specified the same temporary data set name in a previous LIBNAME statement. To assign an additional libref to a temporary library, specify the original libref, as shown in the following example:
    libname t '&tmp#lib1';
    libname x (t);
    Note: Temporary libraries receive system-generated data set names in the following form, which is guaranteed to be unique across the sysplex:
    SYSyyddd.Thhmmss.RA000.jjobname.Rggnnnn
For a library that resides in a UFS directory, the physical name of the library is the directory path. This path can be specified in the following ways:
  • an absolute pathname:
     '/u/userid/mylib'
    a pathname relative to the current working directory:
    './mylib'
    or
     'HFS:mylib'
    The HFS prefix is needed when the SAS system option FILESYSTEM=MVS is in effect and the specified directory pathname does not contain a slash ( / ) to indicate a UFS file. For more information, see FILESYSTEM= System Option: z/OS.
  • a pathname relative to the home directory of the user ID under which SAS is running:
    '~/saslib';
    If the home directory of the user ID under which SAS is running is /u/usera, then this specification is equivalent to '/u/usera/saslib'.
    a pathname relative to the home directory of another user ID:
    '~userb/saslib'; 
    If the home directory for userb is '/u/userhome/userb', then the home directory is equivalent to '/u/userhome/userb/saslib'.
For information about encodings for z/OS resources such as data set names and UFS paths, see Encoding for z/OS Resource Names.
library-specification
Specifies one of the following:
'<file-system-prefix> physical-filename'
<file-system-prefix> physical-filename
libref
ddname
file-system-prefix and physical-filename are described in the preceding list. libref is described above and refers to any SAS libref currently assigned within the SAS session. ddname ddname refers to a z/OS ddname that is allocated to a single z/OS data set or UFS directory. This allocation must be established external to SAS in the job step or TSO session in which the SAS session is running. For more information about using a ddname, see Allocating the Library Data Set and Assigning SAS Libraries Externally.
As noted in the syntax diagram, multiple library specifications can be specified in a single LIBNAME statement. In that case, the libref refers to a logical concatenation of the libraries. For more information, see Library Concatenation in SAS Language Reference: Concepts. In addition, note that libraries of different implementation types (such as direct access bound and UFS) can be included within the concatenation.
engine/host-options
are options that govern processing of the SAS library. Each option is identified by a keyword, and most keywords assign a specific value to that option. You can specify one or more of these options using the following forms:
keyword=value | keyword
When you specify more than one option, use a blank space to separate each option.
There are two categories of options, engine options and host options. Engine options can vary from engine to engine but are the same for all operating environments. These options are documented as part of the syntax of the LIBNAME Statement in SAS Statements: Reference. The host options, which are documented in the following sections, apply exclusively to the z/OS environment. For convenience, the host options are divided into two groups, general options and options that govern the allocation of a library data set. Many host options apply only to certain library implementation types. For more information, see Library Implementation Types for Base and Sequential Engines.

LIBNAME Statement Form for Deassigning Libraries

LIBNAME libref | _ALL_ CLEAR;
This form of the LIBNAME statement can be used to deassign an individual libref (specified by libref) or all library assignments (specified by _ALL_). However, library assignments, such as WORK and SASHELP, that were established when the SAS session was initialized, and that are required for the session to continue, cannot be deassigned.
Deassigning an individual libref removes the individual library assignment that is associated with that libref. If the libref is the last remaining libref associated with the library, then the library is physically deassigned as well. When it physically deassigns bound libraries, SAS performs additional processing to release the library data set and the resources that are associated with processing it. For more information, see Deassigning SAS Libraries.

LIBNAME Statement Form for Listing Library Assignments

LIBNAME libref | _ALL_ LIST;
This form of the LIBNAME statement can be used to list an individual library assignment that is associated with a specified libref or all library assignments (specified by _ALL_). LIBNAME LIST displays the physical name of the library, the engine assigned, and other information that is dependent upon the type of the library.
Note: Listing a bound library causes SAS to physically open the library data set if the library is not already open.

General Host Options

DLTRUNCHK | NODLTRUNCHK
overrides the system option DLTRUNCHK for this LIBNAME statement assignment only. This option applies only to direct access bound libraries. For more information, see DLTRUNCHK System Option: z/OS.
HFS
specifies that the library physical name refers to a UFS directory in the user's UFS working directory. For more information, see UFS Libraries.
It is not necessary to specify this option if the physical-filename in the LIBNAME statement contains a slash ( / ) or if the HFS: data-set-name syntax is used.
HIPERSPACE
specifies that the SAS library is placed in a hiperspace rather than on a disk. HIP is an alias for the HIPERSPACE option. For more information, see Creating Hiperspace Libraries.
LINEAR
specifies that this new library should be allocated as a VSAM linear data set. This library is a permanent library that uses the HIPERSPACE access method by way of the DIV (data-in-virtual) facility.
NOPROMPT
for this assignment, specifies that no dialog box is displayed to prompt you to create the library, even if the system option FILEPROMPT is in effect and if the library does not already exist.

Host Options for Allocating Library Data Sets

The host options in this category specify the parameters for allocating the library data set, or they control the allocation process itself. Therefore, these options only apply for library implementation types in which the library resides in a single z/OS data set: direct access bound, sequential access bound, and DIV libraries.
AVGREC=multiplier
AVGREC can be used only when the unit of space subparameter of the SPACE option is a number, which indicates an average record length. The multiplier value modifies the interpretation of the primary and secondary space subparameters of the SPACE option. The multiplier value can be any of the following:
U specifies that the primary and secondary space subparameters are to be interpreted as requests for sufficient space to contain the number of records that are to be allocated. The value specified with the unit of the space subparameter of the SPACE option is also interpreted as the length of the records.
K specifies that the primary and secondary space subparameters are to be interpreted as a number of records multiplies by 1024. The value that is specified with the unit of the space subparameter of the SPACE option is also interpreted as the average length of the records.
M specifies that the primary and secondary space subparameters are to be interpreted as a number of records multiplied by 1024 times 1024 (1048576). The value that is specified with the unit of the space subparameter of the SPACE option is also interpreted as the average length of the records.
The following example specifies the AVGREC option with a value of U for LIBNAME AVGREC.
LIBNAME AVGREC 'USERID.AVGREC.LIBN' DISP=(NEW,CATLG,DELETE)
    SPACE=(800,(1,1)) AVGREC=U;
BLKSIZE=n
specifies the block size that SAS is to use when dynamically allocating the library data set. The maximum acceptable value is 32760. The BLKSIZE host option is ignored for libraries that are already externally allocated by a DD statement.
If the BLKSIZE option is omitted and SAS must dynamically allocate the library data set, the block size associated with the allocation will be zero unless the BLKALLOC option is specified. For more information, see BLKALLOC System Option: z/OS.
The value of the BLKSIZE host option for the LIBNAME statement is just one of many factors, which might influence the block size that SAS uses to process a library. Different rules apply for different library implementation types. For more information, see the following topics :
DATACLAS=data-class-name
specifies the data class for an SMS-managed data set. The name can have up to eight characters. This option applies only to new data sets; it is ignored for existing data sets. The data class is predefined and controls the DCB attributes for a data set.
The implementation of the DATACLAS= option is compatible with the SMS DATACLAS= JCL parameter. For complete information about this parameter, see MVS JCL Reference by IBM. Ask your system administrator which data-class names are used for SAS libraries at your site.
Note: If your specified value for DATACLAS begins with national characters such as @, #, or $, then you need to enclose the value in single quotation marks as indicated in the following example:
LIBNAME WEEK 'physical.dataset.name'
     DISP=(NEW,CATLG,DELETE) DATACLAS='#DCLAS' MGMTCLAS='#MGMT';
DISP= status | (< status >,< normal-termination-disp>, < abnormal-termination-disp>)
specifies the status of the data set at the beginning and ending of a job, as well as what to do if the job step terminates abnormally. If you are specifying only the status, you can omit the parentheses.
status
specifies the status of the physical file at the beginning of a job. Valid values are
NEW a new data set is to be created.
OLD the data set exists and is not to be shared.
SHR the data set exists and can be shared.
The default value for status is OLD except under the following conditions. Under these conditions, the default for status is SHR:
  • The library data set is already externally allocated DISP=SHR.
  • ACCESS=READONLY was specified in the LIBNAME statement.
  • The library data was allocated DISP=SHR by SAS for an assignment that is still in effect, and the DLDISPCHG option specifies a value that prevents the allocation from being upgraded to OLD. For more information about changing the allocation of an existing library data set, see DLDISPCHG System Option: z/OS.
normal-termination-disp
specifies how the operating system handles the library data set when the final assignment for the library is cleared. If you omit the normal termination disposition value, the default value for new data sets is CATLG, and the default value for existing data sets is KEEP. If SAS uses this value, whether specified or supplied by default for normal-termination-disp, then the value is ignored if SAS uses an existing external allocation to assign the library data set. When this situation occurs, SAS displays a NOTE on the SAS log.
The following values are valid:
DELETE the data set is deleted at the end of the step.
KEEP the data set is to be kept.
CATLG the system should place an entry in the system catalog or user catalog.
UNCATLG the system is to delete the entry in the system catalog or user catalog.
abnormal-termination-disp
specifies how the operating system handles the library data set if the job step under which SAS is running terminates abnormally in such a way that SAS cannot handle the abend. However, under TSO, or if SAS can handle the abend, the data set is handled according to the normal-termination-disposition. The normal-termination-disposition is used if SAS abends as a result of the ERRORABEND option or the ABORT ABEND statement.
Valid values for abnormal-termination-disposition are the same as for normal-termination-disposition. If abnormal-termination-disposition is omitted, then the default value is the same as the value that is specified or supplied by default for normal-termination-disposition.
Note: If SAS uses an existing external allocation to assign the library data set, then the value that is specified or supplied by default for abnormal-termination-disp is ignored.
DSNTYPE=BASIC | LARGE | EXTREQ | EXTPREF | NONE
specifies the type of data set that SAS should create for a new library data set that does not already exist.
BASIC
specifies that SAS creates a regular format sequential data set that cannot use more than 64K tracks on any single volume.
LARGE
specifies that SAS creates a regular format sequential data set that can use more than 64K tracks on any single volume.
EXTREQ
specifies that SAS must create an extended format sequential data set. If the system cannot create an extended format data set, the library assignment will fail. This option value is intended for use with sequential access bound libraries on disk and for DIV libraries. See the LINEAR option in General Host Options . EXTREQ cannot be specified for direct access bound libraries that reside in DSORG=PS data sets.
EXTPREF
specifies that SAS creates an extended format sequential data set, if possible. However, if extended format is not supported for the type of library that is being created, or if the operating system cannot create an extended format data set, then a regular format data set will be created.
NONE
causes SAS to not specify a DSNTYPE value when allocating the library data set. The type of data set that is created will be determined by the system, and will use default values that are supplied by the SMS data class, and so on.
If DSNTYPE is not specified for a new library, then the value that is used for DSNTYPE depends on the engine that is assigned and the type of library that you are creating. SAS creates the new library according to the following rules, which are listed in order of precedence:
  • SAS does not specify a DSNTYPE value when it allocates a DIV library or a library that resides in a temporary data set.
  • If the specified engine is V6, SAS uses DSNTYPE=BASIC to provide compatibility with SAS 6, which does not support DSNTYPE=LARGE.
  • When SAS creates a direct access bound library that resides in a DSORG=PS data set, it uses the value that you specify with the SAS system option DLDSNTYPE.
  • When SAS creates a sequential access bound library that resides on disk, it uses the value that you specify with the SAS system option DLSEQDSNTYPE.
For more information about DLDSNTYPE and DLSEQDSNTYPE, see:
EATTR=OPT | NO
For a SAS library in a z/OS data set, EATTR specifies whether the library data set, when created, is eligible to have extended attributes. In order to reside in the extended addressing space (EAS) of an extended address volume (EAV), a data set must have extended attributes. EATTR accepts the following values:
OPT specifies that the data set has extended attributes if it is created on an EAV.
NO specifies that the data set does not have extended attributes, even if it is created on an EAV.
If the EATTR option is not specified, then the default value for the option can be supplied by the SMS data class that is specified or selected for the allocation. Otherwise, the default is OPT for DIV libraries, and the default is NO for other types of SAS libraries.
The EATTR option has no effect for UFS libraries, nor does it have any effect when assigning a library data set that already exists.
EXTEND
specifies that when SAS allocates this library, it allocates it with a volume count that is one greater than the current number of DASD volumes on which the library resides. With this option, a single-volume library can be converted to a multivolume library, and existing multivolume libraries can be extended to another volume.
LABEL=(subparameter-list)
enables you to specify for a tape or direct access data set the type and contents of the label of the tape or disk data set, as well as other information such as the retention period or expiration date for the data set.
The LABEL= option is identical to the JCL LABEL= parameter. For example:
label=(3,SL,,,EXPDT=2005/123)
This label specification indicates the data set sequence number is 3, that it uses standard labels, and that it expires on the 123rd day of 2005. See MVS JCL Reference by IBM for complete information about how to use the LABEL= option, including which subparameters you can specify in subparameter-list.
LIKE='physical-filename'
when allocating a new library, specifies that SAS sets the DCB attributes of the new library to the same values as those values in the specified data set.
MGMTCLAS=management-class-name
specifies a management class for an SMS data set. The name can have up to eight characters. This option applies only to new data sets; it is ignored for existing data sets. The management class is predefined and controls how your data set is managed, such as how often it is backed up and how it is migrated.
The implementation of the MGMTCLAS= option is compatible with the SMS MGMTCLAS= JCL parameter. For complete information about this parameter, see z/OS JCL Reference by IBM. Ask your system administrator which management class names are used at your site.
Note: If your specified value for MGMTCLAS begins with national characters such as @, #, or $, then you need to enclose the value in single quotation marks as indicated in the following example:
LIBNAME WEEK 'physical.dataset.name'
     DISP=(NEW,CATLG,DELETE) DATACLAS='#DCLAS' MGMTCLAS='#MGMT';
SPACE=(unit,(primary<,secondary>), <RLSE>,<type>,<ROUND> )
specifies how much disk space to provide for a data set that is being created. The space can be requested in terms of tracks, cylinders, or blocks.
unit
can be any of the following:
TRK specifies that the space is to be allocated in tracks.
CYL specifies that the space is to be allocated in cylinders.
blklen specifies that the space is to be allocated in blocks whose block length is blklen bytes. The system computes how many tracks are allocated.
primary
specifies how many tracks, cylinders, or blocks to allocate.
secondary
specifies how many additional tracks, cylinders, or blocks to allocate if more space is needed. The system does not allocate additional space until it is needed.
RLSE
causes unused space that was allocated to an output data set to be released when the data set is closed. Unused space is released only if the data set is opened for output, and if the last operation was a write operation.
type
can be any of the following:
CONTIG specifies that the space to be allocated must be contiguous.
MXIG specifies that the maximum contiguous space is required.
ALX specifies that different areas of contiguous space are needed.
ROUND
specifies that the allocated space must be equal to an integral number of cylinders when the unit specified was a block length. If unit was specified as TRK or CYL, the system ignores ROUND.
If SPACE is not defined, its values are taken from the SAS system options FILEUNIT=, FILESPPRI=, and FILESPSEC=, in the following form:
SPACE=(FILEUNIT,(FILESPPRI,FILESPSEC))
STORCLAS=storage-class-name
specifies a storage class for an SMS data set. The name can have up to eight characters. This option applies only to new data sets; it is ignored for existing data sets. The storage class is predefined and controls which device your SMS data set is stored on, such as disk or tape.
The implementation of the STORCLAS= option is compatible with the SMS STORCLAS= JCL parameter. Ask your system administrator which storage class names are used at your site. For full details about this parameter, refer to MVS JCL Reference by IBM.
Note: If your specified value for STORCLAS begins with national characters such as @, #, or $, then you need to enclose the value in single quotation marks as indicated in the following example:
LIBNAME WEEK 'physical.dataset.name'
     DISP=(NEW,CATLG,DELETE) DATACLAS='#DCLAS' STORCLAS='#SCLAS';
UNIT=value | (value,P )
specifies that value is a generic device type name or a symbolic (esoteric) name for a group of devices. value must be enclosed in quotation marks if the generic device type name or group name contains characters other than alphanumeric characters. Contact your systems administrator to determine the appropriate generic device type or group name to specify.
n is the number of devices to be allocated for processing the library data set. A value from 1 to 59 can be specified. For multi-volume direct access bound libraries residing in non-SMS managed data sets, the device count can be specified to indicate the maximum number of volumes to which the data library can be extended during the current assignment.
For tape libraries, P requests that one device is allocated for each volume on which the data set resides.
For more information, see the IBM document JCL Reference.
VOLCOUNT=nnn
specifies the maximum number of volumes on which a new library can reside. VOLCOUNT enables the creation of a multivolume tape library without the specification of a list of volumes with the VOLSER option. The value of VOLCOUNT is a decimal number from 1 through 255.
VOLSER=value | (value-1, ..., value-n)
specifies up to 30 volume serial numbers. If VOLSER= is not specified, its value is taken from the SAS system option FILEVOL=. For more information, see FILEVOL= System Option: z/OS. The VOLSER option does not need to be specified for existing cataloged data sets unless your SAS job extends the library to additional volumes, and you want to specify the volumes (as opposed to allowing z/OS to select the volumes).
WAIT=n
specifies how long SAS software waits for a data set that is held by another job or user before the LIBNAME statement fails. The value n specifies a length of time in clock minutes. If the data set becomes free before n minutes expire, then the LIBNAME statement is processed as usual. The dynamic allocation request is retried internally every 15 seconds.
When you use the WAIT= option, you must also specify the engine name in the LIBNAME statement if you are accessing uncataloged libraries or libraries that do not reside on disk. Otherwise, you do not have to specify the engine name.
For batch jobs using WAIT=, also specify the FILEMSGS option, which causes a message to be written to the system log for each allocation attempt, thus allowing system operators to determine why the job is waiting. For more information, see FILEMSGS System Option: z/OS.

Host Options for the XPORT, BMDP, OSIRIS, and SPSS Engines

The general form of the LIBNAME statement for the XPORT, BMDP, OSIRIS, and SPSS Engines is
LIBNAME libref <engine > <'physical-filename'> < engine/host-options> ;
LIBNAME libref <engine> <('physical-filename-1', ..., 'physical-filename-n')>
LIBNAME libref | _ALL_ CLEAR;
LIBNAME libref | _ALL_ LIST;
libref
is a logical name by which the library is referenced during your SAS session. The libref must contain 1-8 characters and follow the rules for SAS names. To read, update, or create files that belong to a permanent SAS library, you must include the libref as the first part of a two-level SAS member name in your program statements, as follows:(footnote1)
libref.member
libref could also be a ddname that was specified in a JCL DD statement or in a TSO ALLOCATE command. The first time the ddname of a SAS library is used in a SAS statement or procedure, SAS assigns it as a libref for the SAS library.
SAS 9 for z/OS supports libref names that begin with or contain underscores. For example, libref names with formats such as libref_name, _librefname, or _libref_name are now supported.
engine
tells SAS which engine to use for accessing the library. Valid engine names for z/OS include V9 (or its alias, BASE), V9TAPE, V8, V8TAPE, V7, V7TAPE, V6, V6TAPE, V5, V5TAPE, XPORT, REMOTE, BMDP, OSIRIS, SPD Server, and SPSS. For more information, see SAS Library Engines. If you do not specify an engine, then SAS uses the procedures described in How SAS Assigns an Engine to assign an engine for you. If the engine name that you supply does not match the actual format or attributes of the library, then any attempt to access the library fails.
'physical-filename'
is the z/OS operating environment data set name or the HFS directory name of the SAS library, enclosed in quotation marks. For more information, see Specifying Physical Files. You can omit this argument if you are merely specifying the engine for a previously allocated ddname. Examples:
'userid.V9.library'
'MVS:userid.V9.library'
'HFS:/u/userid/V9/library'
'/u/userid/V9/library'
('physical-filename-1', ..., 'physical-filename-n')
is used to allocate an ordered concatenation of SAS libraries and associate that concatenation with a single libref. The concatenation can include direct-access bound libraries, UNIX System Services directories, and sequential libraries, as long as all of the libraries in the concatenation can be accessed with the specified engine.
When accessing a member of a concatenated series of libraries, SAS searches through the concatenation in the order which it was specified. SAS accesses the first member that matches the specified name. SAS does not access any members with the same name that are positioned after the first occurrence in the concatenation.
engine/host options
are options that apply to the SAS library. The host-specific options that are available depend on which engine you are using to access the library. For more information about SAS engine options, see SAS Library Engines. Specify as many options as you need. Separate them with a blank space. For a complete list of available options, see LIBNAME Statement: z/OS.

Examples

Example 1: Assigning an Existing Bound Library

The following LIBNAME statement associates the libref mylib with the existing library USER934.MYLIB.SASLIB. SAS examines the internal format of the library data set in order to select the appropriate engine. SAS would dynamically allocate the library for shared access if the library were not already assigned externally or internally.
libname mylib 'user934.mylib.saslib' disp=shr;

Example 2: Assigning a UFS Library

The following LIBNAME statement associates the libref hfslib with the collection of UFS files residing in the directory /u/user905/saslib. This form of assignment does not use any host options and is, therefore, simple to port to or from other platforms.
libname UFSlib '/u/user905/saslib';

Example 3: Assigning an Engine for an Externally Allocated Library

The following LIBNAME statement completes the assignment process for the externally assigned library CORP.PROD.PAYROLL.R200305 and specifies that the TAPE engine is used to process this library. It is necessary to specify the LIBNAME statement because the Base SAS engine is the default engine in this particular case.
//REGISTER  DD  DSN=CORP.PROD.PAYROLL.R200305,DISP=(NEW,CATLG),
//          UNIT=DISK,SPACE=(CYL,(5,5))
libname register TAPE;

Example 4: Creating a New Bound Library

The following LIBNAME statement specifies the host options necessary to create and catalog a new multivolume, SMS-managed bound library:
libname new '.newproj.saslib' disp=(new,catlg)
   unit=(disk,2) space=(cyl,(50,20)) dataclas=sasstnd;

Example 5: Concatenating a Personal Library to a Base Library

The following LIBNAME statements associate the libref project with the library concatenation in which a library containing modified members is concatenated in front of the base project library, which is accessed as read-only:
libname projbase '.project.base.saslib' disp=shr;
libname project ('.project.modified.saslib' projbase);

See Also

SAS Language Reference: Concepts
Functions
LIBNAME Function in SAS Functions and CALL Routines: Reference
FOOTNOTE 1:An exception is a SAS file in the USER library. In this case, you can use a one-level name. For more information about the USER library, see SAS Software Files.[return]