SELECT


The SELECT statement is used to select the specific members from the input PDS to output for copying. It is coded with the members to be altered, copied, loaded, or unloaded to an output PDS. A SELECT and EXCLUDE statement should not code together in a single copy, unload, or load step.

Syntax -

//SYSIN     DD  *
  	[label] SELECT MEMBER=({name1|
           (name1,newname1[,R])|
           (name1,,R)}
           [,{name2|
           (name2,newname2[,R])|
           (name2,,R)}][,...])	
/*
  • MEMBER=[(]name1[,...][)] - Specifies members on the input PDS that should include while copying, unloading, or loading to the output data set.
  • R - Specifies that the members to be copied or loaded from the input PDS will replace any identically named members on the output PDS.
  • newname1,... - Specifies the new name of the name1 and so on.

Practical Example -


Scenario - Copying member (COPY) from one PDS to another.

JCL -

----+----1----+----2----+----3----+----4----+----5----+
//MATEPKS  JOB (123),'MTH',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
//             NOTIFY=&SYSUID
//**********************************************
//* SELECING MEMBER FROM INPUT PDS DURING COPY
//**********************************************
//STEP10   EXEC PGM=IEBCOPY 
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSDUMP  DD SYSOUT=*
//SYSUT1   DD DSN=MATEPK.IEBCOPY.INPPDS,DISP=SHR
//SYSUT2   DD DSN=MATEPK.IEBCOPY.OUTPDS,DISP=OLD
//SYSIN    DD *
     COPY INDD=SYSUT1,OUTDD=SYSUT2 
     SELECT MEMBER=FIRSTPRG
/*

Job Status -

SELECT Job Status

Output -

SELECT Output

Explaining Example -

  • SYSUT1 DD DSN=MATEPK.IEBCOPY.INPPDS - Specifies the input PDS.
  • SYSUT2 DD DSN=MATEPK.IEBCOPY.OUTPDS - Specifies the output PDS.
  • COPYGRP INDD=SYSUT1,OUTDD=SYSUT2 - Copies members from SYSUT1 to SYSUT2.
  • SELECT MEMBER=FIRSTPRG - Copies member FIRSTPRG from SYSUT1 to SYSUT2.