SELECT
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 -

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.