Example 3 — Unloading multiple tables to a single data set
This job unloads multiple tables from a multi-table table space into one Db2 table with one UNLOAD command.
There is a clustering index on the table space, which UNLOAD PLUS uses to sort the output records. The job also inserts a constant value of SALARIED, HRLY, or RETIRED into the new field, ALL_EMPLS_STATUS, on the output record. The following table describes the key command options for this job.
The JCL does not contain SORTWK DD statements, so BMCSORT dynamically allocates the sort work files. As specified by the SORTDEVT option, UNLOAD PLUS will use the SYSDA device type for any sort work files that BMCSORT dynamically allocates.
Message 50041I indicates the status of zIIP processing. For this example, the ZIIP installation option is ENABLED, but an XBM subsystem was not specified. UNLOAD PLUS automatically located an available XBM subsystem to provide zIIP processing.
Command options used in JCL | Description |
---|---|
CNTLCARDS Db2 | Writes Db2 CREATE TABLE DDL and DB2 LOAD control statements to the SYSCNTL data set |
ORDER YES | Sorts output records in data-sorting key sequence |
SORTDEVT SYSDA | Specifies device SYSDA for dynamically allocated sort work files |
INTO | Specifies the table in the LOAD control statements that UNLOAD PLUS generates in SYSCNTL |
FROM | Names tables from which to unload data |
The following figure shows the JCL for example 3:
//UNLOAD03 EXEC PGM=ADUUMAIN,REGION=0M,
// PARM=(DEHJ,'ADUXM03','NEW ',,'MSGLEVEL(1)')
//*********************************************************************
//STEPLIB DD DISP=SHR,DSN=<product.libraries>
// DD DISP=SHR,DSN=DB2.DSNEXIT
// DD DISP=SHR,DSN=DB2.DSNLOAD
//SYSIN DD *
*
UNLOAD CNTLCARDS DB2
ORDER YES SORTDEVT SYSDA
*
SELECT *,'SALARIED'
INTO NAME BMC.ALL_EMPLS
ALL_EMPLS_LNAME
,ALL_EMPLS_FNAME
,ALL_EMPLS_SALCDE
,ALL_EMPLS_SALARY
,ALL_EMPLS_DEPTNO
,ALL_EMPLS_HIREDT
,ALL_EMPLS_CRDATE
,ALL_EMPLS_STATUS CHARACTER(8)
FROM BMC.SAL_EMPLS
*
SELECT *,'HRLY'
INTO NAME BMC.ALL_EMPLS
ALL_EMPLS_LNAME
,ALL_EMPLS_FNAME
,ALL_EMPLS_SALCDE
,ALL_EMPLS_SALARY
,ALL_EMPLS_DEPTNO
,ALL_EMPLS_HIREDT
,ALL_EMPLS_CRDATE
,ALL_EMPLS_STATUS CHARACTER(8)
FROM BMC.HRLY_EMPLS
*
SELECT *,'RETIRED'
INTO NAME BMC.ALL_EMPLS
ALL_EMPLS_LNAME
,ALL_EMPLS_FNAME
,ALL_EMPLS_SALCDE
,ALL_EMPLS_SALARY
,ALL_EMPLS_DEPTNO
,ALL_EMPLS_HIREDT
,ALL_EMPLS_CRDATE
,ALL_EMPLS_STATUS CHARACTER(8)
FROM BMC.RET_EMPLS
*
//SYSREC DD DSN=ADU.EXAMPLE3.SYSREC,
// DISP=(,CATLG),SPACE=(TRK,(1,1)),UNIT=SYSDA
//SYSRED DD DSN=ADU.EXAMPLE3.SYSRED,
// DISP=(,CATLG),SPACE=(TRK,(1,1)),UNIT=SYSDA
//SYSCNTL DD DSN=ADU.EXAMPLE3.SYSCNTL,
// DISP=(,CATLG),SPACE=(TRK,(1,1)),UNIT=SYSDA
//UTPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
SYSPRINT for example 3
The following figure shows the SYSPRINT for example 3:
(C) COPYRIGHT 1991 - 2013 BMC SOFTWARE, INC.
BMC50001I UTILITY EXECUTION STARTING 10/28/2013 13:00:23 ...
BMC50002I UTILITY ID = 'ADUXM03'. DB2 SUBSYSTEM ID = 'DEHJ'. OPTION MODULE = 'ADU$OPTS'.
BMC50471I z/OS 2.1.0,PID=HBB7790,DFSMS FOR Z/OS=2.1.0,DB2=11.1.0
BMC50471I REGION=0M,BELOW 16M=8844K,ABOVE 16M=1413304K,IEFUSI=NO,CPUS=3
BMC50471I MEMLIMIT=17592186040320M,AVAILABLE=17592186040311M,MEMLIMIT SET BY:REGION=0
BMC50471I UNLOAD PLUS FOR DB2--V11.01.00
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I DB2 UTILITIES COMMON CODE--V11.01.00
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I SOLUTION COMMON CODE--V11.01.00
BMC50471I MAINT: BPJ0661 BPJ0667 BPJ0671 BPJ0674 BPJ0675 BPJ0676 BPJ0682 BPJ0686 BPJ0689 BPJ0697
BMC50471I BMCSORT ENGINE--V02.04.01
BMC50471I MAINT: BPJ0691
BMC50471I BMC STATS API--V11.01.00
BMC50471I MAINT: BPU5409 BPU5534 BPU5674
BMC50471I EXTENDED BUFFER MANAGER--V06.01.00
BMC50471I MAINT: BPE0401 BPE0403 BPE0405 BPE0407 BPE0410 BPE0412 BPE0416
BMC50471I ANALYZE=(DB2STATS,NOLIMIT) FORCE_RPT=NO SMAX=16
BMC50471I CENTURY=(1950,2049) FORCE=NONE SMCORE=(0K,0K)
BMC50471I CHANGE_CONSISTENT=NO HISTORY=YES SORTNUM=32
BMC50471I CHANGE_QUIESCE=NO IBUFFS=25 SQLDELAY=3
BMC50471I CMAX=16 INLINE=NO SQLRETRY=100
BMC50471I CMRATIO=50 LOADDECP=NO TAPEDISP=DELETE
BMC50471I CONSTRULES=BMC LOCKROW=YES TASKMAX=200%
BMC50471I CURRENTDEGREE=NONE MAXP=5 UBUFFS=25
BMC50471I DELFILES=YES MSGLEVEL=1 UNLDMAX=200%
BMC50471I DRNDELAY=1 NULLCHAR=X'6F' UNLOADDN_ACTIVE=(YES,NO)
BMC50471I DRNRETRY=255 NULLTYPE=T1 UNLOADDN=(SYSREC,SYSRED)
BMC50471I DRNWAIT=NONE OPNDB2ID=YES USELRECL=NO
BMC50471I DSPLOCKS=DRNFAIL PLAN=ADUQA UXSTATE=SUP
BMC50471I EXCLDUMP=(X37,X22,X06) RECFM=AUTO WORKUNIT=SYSALLDA
BMC50471I FILEREFDN=SYSREF ROWSETSZ=100 ZIIP=ENABLED
BMC50471I FILL=NO SDUMP=YES ZONEDDECOVP=(C,D)
BMC50471I FORCE_AT=(START,3) SHRLEVEL=REFERENCE
BMC50471I TAPES=NONE
BMC50470I OUTPUT = SYSREC SYSRED SYSREF
BMC50470I UNIT = SYSALLDA SYSALLDA SYSALLDA
BMC50470I VOLCNT = 25 25 25
BMC50470I GDGLIMIT = 5 5 5
BMC50470I GDGEMPTY = NO NO NO
BMC50470I GDGSCRAT = NO NO NO
BMC50470I STORCLAS = NONE NONE NONE
BMC50470I DATACLAS = NONE NONE NONE
BMC50470I MGMTCLAS = NONE NONE NONE
BMC50470I UNITCNT = 0 0 0
BMC50470I SPACE = CYL CYL CYL
BMC50470I PCTPRIM = AUTO AUTO AUTO
BMC50470I MAXPRIM = 0 0 0
BMC50470I MAXSECD = 0 0 0
BMC50470I FILESZPCT 100 100 100
BMC50470I NBRSECD = AUTO AUTO AUTO
BMC50470I DISKRETN = NONE NONE NONE
BMC50470I DISKEXPD = NONE NONE NONE
BMC50470I RETPD = NONE NONE NONE
BMC50470I EXPDT = 99000 99000 99000
BMC50470I TRTCH = NONE NONE NONE
BMC50470I DSNTYPE = NONE NONE PDS
BMC50483I SYSREC VOLUMES=NONE
BMC50483I SYSRED VOLUMES=NONE
BMC50483I SYSREF VOLUMES=NONE
BMC50483I SYSREC DSNAME=&USERID.&TYPE.S&SELNUM
BMC50483I SYSRED DSNAME=&USERID.&TYPE.S&SELNUM
BMC50483I SYSREF DSNAME=&USERID.BMC
BMC50471I DB2 DSNHDECP MODULE SETTINGS:
BMC50471I VERSION = 1110
BMC50471I SUBSYSTEM DEFAULT = DEHJ
BMC50471I CHARACTER SET = ALPHANUM
BMC50471I DATE FORMAT = USA
BMC50471I TIME FORMAT = USA
BMC50471I LOCAL DATE LENGTH = 0
BMC50471I LOCAL TIME LENGTH = 0
BMC50471I DECIMAL POINT = PERIOD
BMC50471I DECIMAL ARITHMETIC = 15
BMC50471I DELIMITER = DEFAULT
BMC50471I SQL DELIMITER = DEFAULT
BMC50471I ENCODING SCHEME = EBCDIC
BMC50471I APPL. ENCODING SCHEME = EBCDIC
BMC50471I MIXED = NO
BMC50471I EBCDIC CCSID = (37,65534,65534)
BMC50471I ASCII CCSID = (819,65534,65534)
BMC50471I UNICODE CCSID = (367,1208,1200)
BMC50471I IMPLICIT TIME ZONE = CURRENT (-05:00)
BMC50028I DB2 MODE = NFM
BMC50471I BMC_BMCUTIL ='BMCUTIL.CMN_BMCUTIL'
BMC50471I BMC_BMCSYNC ='BMCUTIL.CMN_BMCSYNC'
BMC50471I BMC_BMCHIST ='BMCUTIL.CMN_BMCHIST'
BMC50471I BMC_BMCXCOPY ='BMCUTIL.CMN_BMCXCOPY'
BMC50102I *
BMC50102I UNLOAD CNTLCARDS DB2
BMC50102I ORDER YES SORTDEVT SYSDA
BMC50102I *
BMC50102I SELECT *,'SALARIED'
BMC50102I INTO NAME BMC.ALL_EMPLS
BMC50102I ALL_EMPLS_LNAME
BMC50102I ,ALL_EMPLS_FNAME
BMC50102I ,ALL_EMPLS_SALCDE
BMC50102I ,ALL_EMPLS_SALARY
BMC50102I ,ALL_EMPLS_DEPTNO
BMC50102I ,ALL_EMPLS_HIREDT
BMC50102I ,ALL_EMPLS_CRDATE
BMC50102I ,ALL_EMPLS_STATUS CHARACTER(8)
BMC50102I FROM BMC.SAL_EMPLS
BMC50102I *
BMC50102I SELECT *,'HRLY'
BMC50102I INTO NAME BMC.ALL_EMPLS
BMC50102I ALL_EMPLS_LNAME
BMC50102I ,ALL_EMPLS_FNAME
BMC50102I ,ALL_EMPLS_SALCDE
BMC50102I ,ALL_EMPLS_SALARY
BMC50102I ,ALL_EMPLS_DEPTNO
BMC50102I ,ALL_EMPLS_HIREDT
BMC50102I ,ALL_EMPLS_CRDATE
BMC50102I ,ALL_EMPLS_STATUS CHARACTER(8)
BMC50102I FROM BMC.HRLY_EMPLS
BMC50102I *
BMC50102I SELECT *,'RETIRED'
BMC50102I INTO NAME BMC.ALL_EMPLS
BMC50102I ALL_EMPLS_LNAME
BMC50102I ,ALL_EMPLS_FNAME
BMC50102I ,ALL_EMPLS_SALCDE
BMC50102I ,ALL_EMPLS_SALARY
BMC50102I ,ALL_EMPLS_DEPTNO
BMC50102I ,ALL_EMPLS_HIREDT
BMC50102I ,ALL_EMPLS_CRDATE
BMC50102I ,ALL_EMPLS_STATUS CHARACTER(8)
BMC50102I FROM BMC.RET_EMPLS
BMC50102I *
BMC51654I DIRECT YES IN EFFECT
BMC51687I ESTIMATED ROWS FOR TABLE SPACE BMCEXDB.BMCEXBTS PART 0 IS 6240 FROM HURBA
BMC51688I ESTIMATED ROWS FOR TABLE BMC.RET_EMPLS IS 6240 FROM TABLESPACE
BMC51688I ESTIMATED ROWS FOR TABLE BMC.HRLY_EMPLS IS 6240 FROM TABLESPACE
BMC51688I ESTIMATED ROWS FOR TABLE BMC.SAL_EMPLS IS 6240 FROM TABLESPACE
BMC51689I ESTIMATED ROWS FOR SELECT 1 IS 6240
BMC51689I ESTIMATED ROWS FOR SELECT 2 IS 6240
BMC51689I ESTIMATED ROWS FOR SELECT 3 IS 6240
BMC50004I UTILINIT PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC51639I FOR DDNAME 'SYSREC' DSN=ADU.EXAMPLE3.SYSREC,DCB=(RECFM=VB,BLKSIZE=27993,LRECL=89)
BMC51639I FOR DDNAME 'SYSRED' DSN=ADU.EXAMPLE3.SYSRED,DCB=(RECFM=VB,BLKSIZE=27993,LRECL=89)
BMC50394I UNABLE TO LOCATE SORT WORK DATASETS, DDNAME = 'SORTWKNN'
BMC50894I PAGE EXTERNALIZATION PROCESS STARTING AT 10/28/2013 13:00:24
BMC50650I ESTABLISHING A POINT OF CONSISTENCY FOR:
BMC50651I SPACE BMCEXDB.BMCEXBTS PART(0) PSID(0007)
BMC50895I PAGE EXTERNALIZATION PROCESS COMPLETE. ELAPSED TIME = 00:00:00
BMC50041I 0: ZIIP ENABLED (0) USING XBM SUBSYSTEM XBMB
BMC50474I BELOW 16M = 8476K, ABOVE 16M = 1406160K, CPUS = 3
BMC51701I MAX TASKS = 1, MAX PARTITIONS PER TASK = 1, SORTWKS PER TASK = 32, MAX OPEN PARTITIONS PER TASK = 1
BMC50477I 1: PARTITION = 0, ROWS/KEYS = 40, I/O WAITS = 2 ,DDNAME = SYS00002
BMC50478I 1: RDB LOCK WAITS = 0
BMC50476I DDNAME = SYSREC+SYSRED, I/OS = 1, I/O WAITS = 1, RDB LOCK WAITS = 0
BMC51686I UNLOADING OF DATASET 'DEHJCAT.DSNDBD.BMCEXDB.BMCEXBTS.I0001.A001' READ 5 PAGES
BMC51670I UNLOAD STATISTICS: 20 ROWS PROCESSED FROM TABLE 'BMC.RET_EMPLS', 0 NOT SELECTED, 0 DISCARDED
BMC51670I UNLOAD STATISTICS: 11 ROWS PROCESSED FROM TABLE 'BMC.HRLY_EMPLS', 0 NOT SELECTED, 0 DISCARDED
BMC51670I UNLOAD STATISTICS: 9 ROWS PROCESSED FROM TABLE 'BMC.SAL_EMPLS', 0 NOT SELECTED, 0 DISCARDED
BMC51672I UNLOAD STATISTICS: 40 ROWS PROCESSED FROM SPACE 'BMCEXDB.BMCEXBTS', 0 NOT SELECTED, 0 DISCARDED
BMC51674I UNLOAD STATISTICS: 40 RECORDS WRITTEN TO DDNAME 'SYSREC'
BMC51674I UNLOAD STATISTICS: 40 RECORDS WRITTEN TO DDNAME 'SYSRED'
BMC51675I UNLOAD STATISTICS: 0 RECORDS DISCARDED DUE TO ERRORS
BMC50041I 0: ZIIP NOT ENABLED (0) USING XBM SUBSYSTEM XBMB
BMC50004I UNLOAD PHASE COMPLETE. ELAPSED TIME = 00:00:00
BMC51639I FOR DDNAME 'SYSCNTL' DSN=ADU.EXAMPLE3.SYSCNTL,DCB=(RECFM=FB,BLKSIZE=3120,LRECL=80)
BMC51801I DB2 CREATE TABLE AND LOAD TABLE STATEMENTS WRITTEN TO DDNAME 'SYSCNTL'
BMC51805I CREATE TABLE
BMC51809I BMC.ALL_EMPLS
BMC51807I ( ALL_EMPLS_LNAME VARCHAR(15) NOT NULL
BMC51807I , ALL_EMPLS_FNAME VARCHAR(10) NOT NULL
BMC51807I , ALL_EMPLS_SALCDE CHARACTER(1) NOT NULL
BMC51808I , ALL_EMPLS_SALARY DECIMAL(9 , 2)
BMC51807I , ALL_EMPLS_DEPTNO CHARACTER(4) NOT NULL
BMC51806I , ALL_EMPLS_HIREDT DATE
BMC51807I , ALL_EMPLS_CRDATE TIMESTAMP(6) NOT NULL WITH DEFAULT
BMC51807I , ALL_EMPLS_STATUS CHARACTER(8) NOT NULL
BMC51809I )
BMC51809I ;
BMC51805I CREATE TABLE
BMC51809I BMC.ALL_EMPLS
BMC51807I ( ALL_EMPLS_LNAME VARCHAR(15) NOT NULL
BMC51807I , ALL_EMPLS_FNAME VARCHAR(10) NOT NULL
BMC51807I , ALL_EMPLS_SALCDE CHARACTER(1) NOT NULL
BMC51808I , ALL_EMPLS_SALARY DECIMAL(9 , 2)
BMC51807I , ALL_EMPLS_DEPTNO CHARACTER(4) NOT NULL
BMC51806I , ALL_EMPLS_HIREDT DATE
BMC51807I , ALL_EMPLS_CRDATE TIMESTAMP(6) NOT NULL WITH DEFAULT
BMC51807I , ALL_EMPLS_STATUS CHARACTER(8) NOT NULL
BMC51809I )
BMC51809I ;
BMC51805I CREATE TABLE
BMC51809I BMC.ALL_EMPLS
BMC51807I ( ALL_EMPLS_LNAME VARCHAR(15) NOT NULL
BMC51807I , ALL_EMPLS_FNAME VARCHAR(10) NOT NULL
BMC51807I , ALL_EMPLS_SALCDE CHARACTER(1) NOT NULL
BMC51808I , ALL_EMPLS_SALARY DECIMAL(9 , 2)
BMC51807I , ALL_EMPLS_DEPTNO CHARACTER(4) NOT NULL
BMC51806I , ALL_EMPLS_HIREDT DATE
BMC51807I , ALL_EMPLS_CRDATE TIMESTAMP(6) NOT NULL WITH DEFAULT
BMC51807I , ALL_EMPLS_STATUS CHARACTER(8) NOT NULL
BMC51809I )
BMC51809I ;
BMC51810I LOAD DATA INDDN SYSREC
BMC51940I EBCDIC CCSID(37,65534,65534)
BMC51811I INTO TABLE
BMC51809I BMC.ALL_EMPLS
BMC51813I (ALL_EMPLS_LNAME POSITION(1:*) VARCHAR
BMC51813I ,ALL_EMPLS_FNAME POSITION(*:*) VARCHAR
BMC51815I ,ALL_EMPLS_SALCDE POSITION(*:*+0) CHAR (1)
BMC51813I ,ALL_EMPLS_SALARY POSITION(*:*+4) DECIMAL
BMC51814I NULLIF BMC_NULL1=X'6F'
BMC51819I , BMC_NULL1 POSITION(*) CHAR(1)
BMC51815I ,ALL_EMPLS_DEPTNO POSITION(*:*+3) CHAR (4)
BMC51815I ,ALL_EMPLS_HIREDT POSITION(*:*+9) DATE EXTERNAL(10)
BMC51814I NULLIF BMC_NULL2=X'6F'
BMC51819I , BMC_NULL2 POSITION(*) CHAR(1)
BMC51815I ,ALL_EMPLS_CRDATE POSITION(*:*+25) TIMESTAMP EXTERNAL(26)
BMC51815I ,ALL_EMPLS_STATUS POSITION(*:*+7) CHAR (8)
BMC51809I )
BMC51810I LOAD DATA INDDN SYSREC
BMC51940I EBCDIC CCSID(37,65534,65534)
BMC51811I INTO TABLE
BMC51809I BMC.ALL_EMPLS
BMC51813I (ALL_EMPLS_LNAME POSITION(1:*) VARCHAR
BMC51813I ,ALL_EMPLS_FNAME POSITION(*:*) VARCHAR
BMC51815I ,ALL_EMPLS_SALCDE POSITION(*:*+0) CHAR (1)
BMC51813I ,ALL_EMPLS_SALARY POSITION(*:*+4) DECIMAL
BMC51814I NULLIF BMC_NULL1=X'6F'
BMC51819I , BMC_NULL1 POSITION(*) CHAR(1)
BMC51815I ,ALL_EMPLS_DEPTNO POSITION(*:*+3) CHAR (4)
BMC51815I ,ALL_EMPLS_HIREDT POSITION(*:*+9) DATE EXTERNAL(10)
BMC51814I NULLIF BMC_NULL2=X'6F'
BMC51819I , BMC_NULL2 POSITION(*) CHAR(1)
BMC51815I ,ALL_EMPLS_CRDATE POSITION(*:*+25) TIMESTAMP EXTERNAL(26)
BMC51815I ,ALL_EMPLS_STATUS POSITION(*:*+7) CHAR (8)
BMC51809I )
BMC51810I LOAD DATA INDDN SYSREC
BMC51940I EBCDIC CCSID(37,65534,65534)
BMC51811I INTO TABLE
BMC51809I BMC.ALL_EMPLS
BMC51813I (ALL_EMPLS_LNAME POSITION(1:*) VARCHAR
BMC51813I ,ALL_EMPLS_FNAME POSITION(*:*) VARCHAR
BMC51815I ,ALL_EMPLS_SALCDE POSITION(*:*+0) CHAR (1)
BMC51813I ,ALL_EMPLS_SALARY POSITION(*:*+4) DECIMAL
BMC51814I NULLIF BMC_NULL1=X'6F'
BMC51819I , BMC_NULL1 POSITION(*) CHAR(1)
BMC51815I ,ALL_EMPLS_DEPTNO POSITION(*:*+3) CHAR (4)
BMC51815I ,ALL_EMPLS_HIREDT POSITION(*:*+9) DATE EXTERNAL(10)
BMC51814I NULLIF BMC_NULL2=X'6F'
BMC51819I , BMC_NULL2 POSITION(*) CHAR(1)
BMC51815I ,ALL_EMPLS_CRDATE POSITION(*:*+25) TIMESTAMP EXTERNAL(26)
BMC51815I ,ALL_EMPLS_STATUS POSITION(*:*+7) CHAR (8)
BMC51809I )
BMC50476I DDNAME = SYSCNTL, I/OS = 1, I/O WAITS = 1, RDB LOCK WAITS = 0
BMC50006I UTILITY EXECUTION COMPLETE, RETURN CODE = 0
Related topic