SYSnnnnn.
libname mylib 'user934.mylib.saslib' disp=shr;
data mylib.member1; ... run;
data 'user934.mylib.saslib(member1)'; ... run;
data 'user489.test.saslib(member1)'; x=1; run; proc print data='user489.test.saslib(member1)'; run;
data '/u/user905/MyProject/Member1'; x=51; run; proc print data='/u/user905/MyProject/Member1'; run;
/u/user905,
the example below would be equivalent to the example above: data 'MyProject/Member1'; x=51; run; proc print data='MyProject/Member1'; run;
proc print data='NewProject/member1.sas7sdat'; run;
//BOOKS DD DSN=LIBRARY.CATALOG.DATA, // DISP=OLD
//UFSLIB DD PATH='/corp/dev/test1'Note that UNIX System Services recognizes and distinguishes between uppercase and lowercase letters in pathnames. Also, in contrast to bound libraries, allocating UFS libraries merely provides a convenient way to establish an external logical name (ddname) for a UFS library. It does not place any enqueue that would prevent the library from being accessed by other jobs on the
alloc dd(books) da('lib.cat.data') oldx alloc dd(books) da('lib.cat.data') old;For
more information, see X Statement: z/OS.x alloc dd(result2) path('/corp/dev/test2'); Note
that allocating UFS libraries in this way provides a convenient way
to establish an external logical name (ddname) for a UFS library.
No enqueue is placed on the library.proc contents data=books._all_; run;
x alloc f(mail) da('quarter1.mailing.list') new
dsorg(ps) space(10 1) cyl;libname tmp '&lib' unit=(sysda,3) space=(cyl,(300,100));
//WORK DD DSN=MY.MASTER.LIBRARY,DISP=(NEW,CATLG,DELETE), // UNIT=(DISK,3),SPACE=(CYL,(300,100))
//WORK DD DSN=MY.MASTER.LIBRARY,DISP=OLD,UNIT=(DISK,5)If you want to extend an existing library, but only on the volumes that it already occupies, it is not necessary to specify the UNIT parameter.
libname payroll 'my.master.library' disp=old extend;
//TEST1 DD DSN=MY.PROJECT.LIBRARY,DISP=(NEW,CATLG), // UNIT=(DISK,4),SPACE=(CYL,(200,200)), // STORCLAS=SASSTD,DATACLAS=SASSTD,DCB=(DSORG=PS,RECFM=FS)The volume count represents the maximum number of volumes to which the data set can be extended in creating jobs as well as in subsequent jobs. Therefore, this library could be extended to as many as four volumes using the following DD statement:
//TEST1 DD DSN=MY.PROJECT.LIBRARY,DISP=OLD
//ALLOC EXEC PGM=IEFBR14 //VOL1 DD DSN=MY.PAYROLL.LIBRARY,DISP=(NEW,KEEP), // DCB=(DSORG=PS,RECFM=FS,LRECL=27648, // BLKSIZE=27648),UNIT=3390, // SPACE=(CYL,1113),VOL=SER=PR0001 //VOL2 DD DSN=MY.PAYROLL.LIBRARY,DISP=(NEW,KEEP), // DCB=(DSORG=PS,RECFM=FS,LRECL=27648, // BLKSIZE=27648),UNIT=3390, // SPACE=(CYL,1113),VOL=SER=PR0002 //VOL3 DD DSN=MY.PAYROLL.LIBRARY,DISP=(NEW,KEEP), // DCB=(DSORG=PS,RECFM=FS,LRECL=27648, // BLKSIZE=27648),UNIT=3390, // SPACE=(CYL,1113),VOL=SER=PR0003 //CATDD DD DSN=MY.PAYROLL.LIBRARY, // DISP=(OLD,CATLG),UNIT=3390, // VOL=SER=(PR0001,PR0002,PR0003)Note that IEFBR14 is an IBM utility program that returns immediately, allowing the system to perform job step allocation or deallocation processing.
//ALLOC EXEC PGM=IEFBR14 //UNCATDD DD DSN=MY.PAYROLL.LIBRARY, // DISP=(OLD,UNCATLG) //NEWVOL DD DSN=MY.PAYROLL.LIBRARY, // DISP=(NEW,KEEP_,DCB=(DSORG=PS, // RECFM=FS,LRECL=27648, // BLKSIZE=27648),UNIT=3390, // SPACE=(CYL,1113),VOL=SER=PR0004 //CATDD DD DSN=MY.PAYROLL.LIBRARY, // DISP=(OLD,CATLG),UNIT=3390, // VOL=SER=(PR0001,PR0002,PR0003, // PR0004)
//ALLOC EXEC PGM=IEFBR14 //DD1 DD DSN=MY.PAYROLL.LIBRARY, // DISP=(NEW,CATLG),DCB=(DSORG=PS, // RECFM=FS,LRECL=27648, // BLKSIZE=27648),SPACE=(CYL,1113), // UNIT=(DISK,3),STORCLAS=SASGUAR //The GUARANTEED SPACE attribute causes the system to allocate the primary space amount on each volume when the library is allocated.
// JOB ...
//* ----------------------------------------------
//* CREATE GDG BASE FOR SAS LIBRARIES
//* ----------------------------------------------
//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE GDG +
( +
NAME(PROD.WEEKLY.PERFSTAT) +
LIMIT(5) +
SCRATCH +
)
//* ----------------------------------------------// JOB ... //* ----------------------------------------------------------- //* CREATE MULTI-VOLUME SAS LIBRARY WHICH IS MEMBER OF GDG //* ----------------------------------------------------------- //STEP01 EXEC SAS //NEWLIB DD DSN=PROD.WEEKLY.PERFSTAT(+1),DISP=(NEW,CATLG), // UNIT=(DISK,2),SPACE=(CYL,(50,10)), // DCB=PROD.WEEKLY.MODEL //SYSIN DD * DATA NEWLIB.MEMB01; ... //* -----------------------------------------------------------