DSNTEJ1
THIS JCL PERFORMS THE PHASE 1 SETUP FOR THE SAMPLE APPLICATIONS ON A LOCAL Db2 SYSTEM (A SYSTEM WHICH WILL CONTAIN THE ACTUAL SAMPLE TABLES).

//*********************************************************************
//* NAME = DSNTEJ1
//*
//* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION
//* PHASE 1 (LOCAL SITE ONLY)
//*
//* Licensed Materials - Property of IBM
//* 5698-DB2
//* COPYRIGHT IBM CORP 1982, 2022
//*
//* STATUS = Version 13
//*
//* FUNCTION = THIS JCL PERFORMS THE PHASE 1 SETUP FOR THE SAMPLE
//* APPLICATIONS ON A LOCAL DB2 SYSTEM (A SYSTEM WHICH
//* WILL CONTAIN THE ACTUAL SAMPLE TABLES).
//*
//* NOTICE =
//* THIS SAMPLE JOB USES DB2 UTILITIES. SOME UTILITY FUNCTIONS ARE
//* ELEMENTS OF SEPARATELY ORDERABLE PRODUCTS. SUCCESSFUL USE OF
//* A PARTICULAR SAMPLE JOB MAY BE DEPENDENT UPON THE OPTIONAL
//* PRODUCT BEING LICENSED AND INSTALLED IN YOUR ENVIRONMENT.
//*
//* CHANGE ACTIVITY =
//* 10/20/2012 Create ALIASes instead of SYNONYMs N0102 / 163503
//* 11/07/2012 ADD SET CURRENT SQLID DN1651_INST1 / DN1651
//* 05/17/2013 FIX COPYRIGHT STATEMENT. 49779_077_724
//* 10/29/2013 Create EMP as PBR not index partitioned PM98424
//* 02/24/2014 Increase length of the LRSN column in PI10794
//* MAP_TBL from CHAR(06) to CHAR(10)
//* 02/15/2016 Long data set names PI42601
//* 10/27/2016 Update MAP_TBL definition for DB2 12 PI66261
//* 08/21/2018 Tolerate creation of deprecated TSs s81673 / t81374
//* 12/01/2021 Remove tolerance for deprecated TSs e6837 / s15746
//* 01/26/2022 Update RID size from CHAR(5) to CHAR(7) dq17293
//*
//*********************************************************************
//*
//JOBLIB DD DSN=DSN!!0.SDSNLOAD,DISP=SHR
//*
//*********************************************************************
//* ASMCL PROC - ASSEMBLE AND LINKEDIT AN ASM PROGRAM
//*
//ASMCL PROC WSPC=500,MEM=TEMPNAME
//*
//* ASSEMBLE
//*
//ASM EXEC PGM=ASMA90,PARM='OBJECT,NODECK'
//SYSIN DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(&MEM)
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=DSN!!0.SDSNMACS,DISP=SHR
// DD DSN=DSN!!0.SDSNSAMP,DISP=SHR
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),
// UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC)),
// DCB=(BLKSIZE=800)
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT2 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//SYSUT3 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND)
//*
//* LINKEDIT IF THE ASSEMBLER
//* RETURN CODE IS 4 OR LESS
//*
//LKED EXEC PGM=IEWL,PARM='LIST,XREF,NCAL,RENT,AMODE=31,RMODE=ANY',
// COND=(4,LT,ASM)
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
//SYSLMOD DD DISP=SHR,
// DSN=DSN!!0.SDSNEXIT(&MEM)
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,50))
//*
//ASMCL PEND
//*********************************************************************
//*
//* STEP 1: CREATE SAMPLE STORAGE GROUPS, TABLESPACES
//*
//PH01S01 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
CREATE STOGROUP DSN8G!!0
VOLUMES (DSNV01)
VCAT DSNC!!0;
CREATE DATABASE DSN8D!!A
STOGROUP DSN8G!!0
BUFFERPOOL BP0
CCSID EBCDIC;
CREATE DATABASE DSN8D!!P
STOGROUP DSN8G!!0
BUFFERPOOL BP0
CCSID EBCDIC;
CREATE DATABASE DSN8D!!X
STOGROUP DSN8G!!0
BUFFERPOOL BP0
CCSID EBCDIC;
CREATE TABLESPACE DSN8S!!D
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
COMMIT ;
CREATE TABLESPACE DSN8S!!E
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
NUMPARTS 4
(PART 1 USING STOGROUP DSN8G!!0
,PART 3 USING STOGROUP DSN8G!!0
)
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
COMPRESS YES
CCSID EBCDIC;
COMMIT ;
CREATE TABLESPACE DSN8S!!A
IN DSN8D!!P
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE PAGE
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!B
IN DSN8D!!P
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE PAGE
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!C
IN DSN8D!!P
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE PAGE
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
COMMIT ;
CREATE TABLESPACE DSN8S!!Q
IN DSN8D!!P
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE PAGE
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
COMMIT ;
CREATE TABLESPACE DSN8S!!F
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!G
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!H
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!I
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!J
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!R
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!M
IN DSN8D!!A
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE ROW
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!N
IN DSN8D!!A
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE ROW
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!O
IN DSN8D!!A
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE ROW
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!P
IN DSN8D!!A
USING STOGROUP DSN8G!!0
SEGSIZE 4
LOCKSIZE ROW
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
COMMIT ;
CREATE TABLESPACE DSN8S!!S
IN DSN8D!!A
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
COMMIT;
CREATE TABLESPACE DSN8S!!T
IN DSN8D!!X
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!U
IN DSN8D!!X
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!V
IN DSN8D!!X
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!W
IN DSN8D!!X
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!X
IN DSN8D!!X
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!Y
IN DSN8D!!X
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
CREATE TABLESPACE DSN8S!!Z
IN DSN8D!!X
USING STOGROUP DSN8G!!0
ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP0
CLOSE NO
CCSID EBCDIC
MAXPARTITIONS 254;
COMMIT;
//*
//* STEP 2: CREATE SAMPLE TABLES, VIEWS
//*
//PH01S02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
CREATE TABLE DSN8!!0.DEPT
(DEPTNO CHAR(3) NOT NULL,
DEPTNAME VARCHAR(36) NOT NULL,
MGRNO CHAR(6) ,
ADMRDEPT CHAR(3) NOT NULL,
LOCATION CHAR(16) ,
PRIMARY KEY(DEPTNO))
IN DSN8D!!A.DSN8S!!D
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.XDEPT1
ON DSN8!!0.DEPT
(DEPTNO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE INDEX DSN8!!0.XDEPT2
ON DSN8!!0.DEPT
(MGRNO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE INDEX DSN8!!0.XDEPT3
ON DSN8!!0.DEPT
(ADMRDEPT ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VDEPT
AS SELECT ALL DEPTNO ,
DEPTNAME,
MGRNO ,
ADMRDEPT
FROM DSN8!!0.DEPT;
CREATE VIEW DSN8!!0.VHDEPT
AS SELECT ALL DEPTNO ,
DEPTNAME,
MGRNO ,
ADMRDEPT,
LOCATION
FROM DSN8!!0.DEPT;
COMMIT ;
CREATE TABLE DSN8!!0.EMP
(EMPNO CHAR(6) NOT NULL,
FIRSTNME VARCHAR(12) NOT NULL,
MIDINIT CHAR(1) NOT NULL,
LASTNAME VARCHAR(15) NOT NULL,
WORKDEPT CHAR(3) ,
PHONENO CHAR(4) CONSTRAINT NUMBER CHECK
(PHONENO >= '0000' AND PHONENO <= '9999'),
HIREDATE DATE ,
JOB CHAR(8) ,
EDLEVEL SMALLINT ,
SEX CHAR(1) ,
BIRTHDATE DATE ,
SALARY DECIMAL(9, 2) ,
BONUS DECIMAL(9, 2) ,
COMM DECIMAL(9, 2) ,
PRIMARY KEY(EMPNO),
FOREIGN KEY RED (WORKDEPT) REFERENCES DSN8!!0.DEPT
ON DELETE SET NULL)
PARTITION BY RANGE (EMPNO)
(PARTITION 1 ENDING AT('099999'),
PARTITION 2 ENDING AT('199999'),
PARTITION 3 ENDING AT('299999'),
PARTITION 4 ENDING AT('999999'))
EDITPROC DSN8EAE1
IN DSN8D!!A.DSN8S!!E
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.XEMP1
ON DSN8!!0.EMP
(EMPNO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE INDEX DSN8!!0.XEMP2
ON DSN8!!0.EMP
(WORKDEPT ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VEMP
AS SELECT ALL EMPNO ,
FIRSTNME,
MIDINIT ,
LASTNAME,
WORKDEPT
FROM DSN8!!0.EMP;
COMMIT ;
CREATE TABLE DSN8!!0.PROJ
(PROJNO CHAR(6) PRIMARY KEY NOT NULL,
PROJNAME VARCHAR(24) NOT NULL WITH DEFAULT
'PROJECT NAME UNDEFINED',
DEPTNO CHAR(3) NOT NULL REFERENCES
DSN8!!0.DEPT ON DELETE RESTRICT,
RESPEMP CHAR(6) NOT NULL REFERENCES
DSN8!!0.EMP ON DELETE RESTRICT,
PRSTAFF DECIMAL(5, 2) ,
PRSTDATE DATE ,
PRENDATE DATE ,
MAJPROJ CHAR(6))
IN DSN8D!!A.DSN8S!!M
CCSID EBCDIC;
ALTER TABLESPACE DSN8D!!A.DSN8S!!M CLOSE NO;
ALTER TABLESPACE DSN8D!!A.DSN8S!!E
PART 3 COMPRESS NO;
CREATE UNIQUE INDEX DSN8!!0.XPROJ1
ON DSN8!!0.PROJ
(PROJNO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE INDEX DSN8!!0.XPROJ2
ON DSN8!!0.PROJ
(RESPEMP ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VPROJ
AS SELECT ALL
PROJNO, PROJNAME, DEPTNO, RESPEMP, PRSTAFF,
PRSTDATE, PRENDATE, MAJPROJ
FROM DSN8!!0.PROJ ;
COMMIT ;
CREATE TABLE DSN8!!0.ACT
(ACTNO SMALLINT NOT NULL,
ACTKWD CHAR(6) NOT NULL,
ACTDESC VARCHAR(20) NOT NULL,
PRIMARY KEY(ACTNO))
IN DSN8D!!A.DSN8S!!N
CCSID EBCDIC;
ALTER TABLESPACE DSN8D!!A.DSN8S!!N CLOSE NO;
CREATE UNIQUE INDEX DSN8!!0.XACT1
ON DSN8!!0.ACT
(ACTNO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE UNIQUE INDEX DSN8!!0.XACT2
ON DSN8!!0.ACT
(ACTKWD ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VACT
AS SELECT ALL ACTNO ,
ACTKWD ,
ACTDESC
FROM DSN8!!0.ACT ;
COMMIT ;
CREATE TABLE DSN8!!0.PROJACT
(PROJNO CHAR(6) NOT NULL,
ACTNO SMALLINT NOT NULL,
ACSTAFF DECIMAL(5, 2) ,
ACSTDATE DATE NOT NULL,
ACENDATE DATE ,
PRIMARY KEY(PROJNO,ACTNO,ACSTDATE),
FOREIGN KEY RPAP (PROJNO) REFERENCES DSN8!!0.PROJ
ON DELETE RESTRICT,
FOREIGN KEY RPAA (ACTNO) REFERENCES DSN8!!0.ACT
ON DELETE RESTRICT)
IN DSN8D!!A.DSN8S!!O
CCSID EBCDIC;
ALTER TABLESPACE DSN8D!!A.DSN8S!!O CLOSE NO;
CREATE UNIQUE INDEX DSN8!!0.XPROJAC1
ON DSN8!!0.PROJACT
(PROJNO ASC,
ACTNO ASC,
ACSTDATE ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VPROJACT
AS SELECT ALL
PROJNO,ACTNO, ACSTAFF, ACSTDATE, ACENDATE
FROM DSN8!!0.PROJACT ;
COMMIT ;
CREATE TABLE DSN8!!0.EMPPROJACT
(EMPNO CHAR(6) NOT NULL,
PROJNO CHAR(6) NOT NULL,
ACTNO SMALLINT NOT NULL,
EMPTIME DECIMAL(5, 2) ,
EMSTDATE DATE ,
EMENDATE DATE ,
FOREIGN KEY REPAPA (PROJNO, ACTNO, EMSTDATE)
REFERENCES DSN8!!0.PROJACT
ON DELETE RESTRICT,
FOREIGN KEY REPAE (EMPNO) REFERENCES DSN8!!0.EMP
ON DELETE RESTRICT)
IN DSN8D!!A.DSN8S!!P
CCSID EBCDIC;
ALTER TABLESPACE DSN8D!!A.DSN8S!!P CLOSE NO;
CREATE UNIQUE INDEX DSN8!!0.XEMPPROJACT1
ON DSN8!!0.EMPPROJACT
(PROJNO ASC,
ACTNO ASC,
EMSTDATE ASC,
EMPNO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE INDEX DSN8!!0.XEMPPROJACT2
ON DSN8!!0.EMPPROJACT
(EMPNO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VEMPPROJACT
AS SELECT ALL
EMPNO, PROJNO, ACTNO, EMPTIME, EMSTDATE, EMENDATE
FROM DSN8!!0.EMPPROJACT ;
COMMIT ;
CREATE TABLE DSN8!!0.PARTS
(ITEMNUM CHAR(6) NOT NULL,
DESCRIPT VARCHAR(30) NOT NULL,
COLOR VARCHAR(8) ,
SUPPLIER VARCHAR(15) NOT NULL)
IN DSN8D!!A.DSN8S!!S
CCSID EBCDIC;
CREATE INDEX DSN8!!0.XPARTS
ON DSN8!!0.PARTS
(ITEMNUM ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
COMMIT ;
CREATE TABLE DSN8!!0.TCONA
(CONVID CHAR(16) NOT NULL,
LASTSCR CHAR(8) NOT NULL,
LASTPOS CHAR(254) NOT NULL,
LASTPOSC CHAR(254) NOT NULL,
LASTMSG VARCHAR(1609) NOT NULL)
IN DSN8D!!P.DSN8S!!A
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.XCONA1
ON DSN8!!0.TCONA
(CONVID ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VCONA
AS SELECT ALL
CONVID, LASTSCR, LASTPOS, LASTPOSC, LASTMSG
FROM DSN8!!0.TCONA ;
COMMIT ;
CREATE TABLE DSN8!!0.TOPTVAL
(MAJSYS CHAR(1) NOT NULL,
ACTION CHAR(1) NOT NULL,
OBJFLD CHAR(2) NOT NULL,
SRCHCRIT CHAR(2) NOT NULL,
SCRTYPE CHAR(1) NOT NULL,
HEADTXT CHAR(50) NOT NULL,
SELTXT CHAR(50) NOT NULL,
INFOTXT CHAR(79) NOT NULL,
HELPTXT CHAR(79) NOT NULL,
PFKTXT CHAR(79) NOT NULL,
DSPINDEX CHAR(2) NOT NULL)
IN DSN8D!!P.DSN8S!!B
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.XOPTVAL1
ON DSN8!!0.TOPTVAL
(MAJSYS ASC,
ACTION ASC,
OBJFLD ASC,
SRCHCRIT ASC,
SCRTYPE ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VOPTVAL
AS SELECT ALL
MAJSYS, ACTION, OBJFLD, SRCHCRIT, SCRTYPE, HEADTXT,
SELTXT, INFOTXT, HELPTXT, PFKTXT, DSPINDEX
FROM DSN8!!0.TOPTVAL ;
COMMIT ;
CREATE TABLE DSN8!!0.TDSPTXT
(DSPINDEX CHAR(2) NOT NULL,
LINENO CHAR(2) NOT NULL,
DSPLINE CHAR(79) NOT NULL)
IN DSN8D!!P.DSN8S!!C
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.XDSPTXT1
ON DSN8!!0.TDSPTXT
(DSPINDEX ASC,
LINENO ASC)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
CREATE VIEW DSN8!!0.VDSPTXT
AS SELECT ALL
DSPINDEX, LINENO, DSPLINE
FROM DSN8!!0.TDSPTXT ;
COMMIT;
ALTER TABLE DSN8!!0.DEPT
FOREIGN KEY RDD (ADMRDEPT) REFERENCES DSN8!!0.DEPT
ON DELETE CASCADE;
ALTER TABLE DSN8!!0.DEPT
FOREIGN KEY RDE (MGRNO) REFERENCES DSN8!!0.EMP
ON DELETE SET NULL;
ALTER TABLE DSN8!!0.PROJ
FOREIGN KEY RPP (MAJPROJ) REFERENCES DSN8!!0.PROJ
ON DELETE CASCADE;
COMMIT;
CREATE TABLE DSN8!!0.EDEPT LIKE DSN8!!0.DEPT
IN DSN8D!!A.DSN8S!!F ;
CREATE TABLE DSN8!!0.EEMP LIKE DSN8!!0.EMP
IN DSN8D!!A.DSN8S!!G ;
CREATE TABLE DSN8!!0.EPROJ LIKE DSN8!!0.PROJ
IN DSN8D!!A.DSN8S!!H ;
CREATE TABLE DSN8!!0.EACT LIKE DSN8!!0.ACT
IN DSN8D!!A.DSN8S!!I ;
CREATE TABLE DSN8!!0.EPROJACT LIKE DSN8!!0.PROJACT
IN DSN8D!!A.DSN8S!!J ;
CREATE TABLE DSN8!!0.EEPA LIKE DSN8!!0.EMPPROJACT
IN DSN8D!!A.DSN8S!!R ;
COMMIT;
ALTER TABLE DSN8!!0.EDEPT
ADD RID CHAR(7);
ALTER TABLE DSN8!!0.EDEPT
ADD TSTAMP TIMESTAMP;
ALTER TABLE DSN8!!0.EEMP
ADD RID CHAR(7);
ALTER TABLE DSN8!!0.EEMP
ADD TSTAMP TIMESTAMP;
ALTER TABLE DSN8!!0.EPROJ
ADD RID CHAR(7);
ALTER TABLE DSN8!!0.EPROJ
ADD TSTAMP TIMESTAMP;
ALTER TABLE DSN8!!0.EACT
ADD RID CHAR(7);
ALTER TABLE DSN8!!0.EACT
ADD TSTAMP TIMESTAMP;
ALTER TABLE DSN8!!0.EPROJACT
ADD RID CHAR(7);
ALTER TABLE DSN8!!0.EPROJACT
ADD TSTAMP TIMESTAMP;
ALTER TABLE DSN8!!0.EEPA
ADD RID CHAR(7);
ALTER TABLE DSN8!!0.EEPA
ADD TSTAMP TIMESTAMP;
COMMIT;
CREATE SEQUENCE DSN8!!0.POID
AS BIGINT
START WITH 1000
INCREMENT BY 1;
CREATE SEQUENCE DSN8!!0.CID
AS BIGINT
START WITH 1000
INCREMENT BY 1;
CREATE TABLE DSN8!!0.PRODUCT
( PID VARCHAR(10) NOT NULL PRIMARY KEY
,NAME VARCHAR(128)
,PRICE DECIMAL(30, 2)
,PROMOPRICE DECIMAL(30, 2)
,PROMOSTART DATE
,PROMOEND DATE
,DESCRIPTION XML )
IN DSN8D!!X.DSN8S!!T
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.PROD_NAME_PIDX
ON DSN8!!0.PRODUCT(PID)
USING STOGROUP DSN8G!!0;
CREATE INDEX DSN8!!0.PROD_NAME_XMLIDX
ON DSN8!!0.PRODUCT(DESCRIPTION)
GENERATE KEY USING XMLPATTERN '/product/description/name'
AS SQL VARCHAR(128)
USING STOGROUP DSN8G!!0;
CREATE INDEX DSN8!!0.PROD_DETAIL_XMLIDX
ON DSN8!!0.PRODUCT(DESCRIPTION)
GENERATE KEY USING XMLPATTERN '/product/description/detail'
AS SQL VARCHAR(128)
USING STOGROUP DSN8G!!0;
CREATE TABLE DSN8!!0.INVENTORY
( PID VARCHAR(10) NOT NULL PRIMARY KEY,
QUANTITY INTEGER,
LOCATION VARCHAR(128) )
IN DSN8D!!X.DSN8S!!U
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.INVENTORY_PIDX
ON DSN8!!0.INVENTORY(PID)
USING STOGROUP DSN8G!!0;
CREATE TABLE DSN8!!0.CUSTOMER
( CID BIGINT NOT NULL PRIMARY KEY,
INFO XML,
HISTORY XML )
IN DSN8D!!X.DSN8S!!V
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.CUSTOMER_CIDX
ON DSN8!!0.CUSTOMER(CID)
USING STOGROUP DSN8G!!0;
CREATE TABLE DSN8!!0.PURCHASEORDER
( POID BIGINT NOT NULL PRIMARY KEY,
STATUS VARCHAR(10) NOT NULL WITH DEFAULT 'New',
PORDER XML )
IN DSN8D!!X.DSN8S!!W
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.PURCHASEORDER_POIDX
ON DSN8!!0.PURCHASEORDER(POID)
USING STOGROUP DSN8G!!0;
CREATE TABLE DSN8!!0.CATALOG
( NAME VARCHAR(128) NOT NULL PRIMARY KEY,
CATLOG XML )
IN DSN8D!!X.DSN8S!!X
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.CATALOG_NAMEX
ON DSN8!!0.CATALOG(NAME)
USING STOGROUP DSN8G!!0;
CREATE TABLE DSN8!!0.SUPPLIERS
( SID VARCHAR(10) NOT NULL PRIMARY KEY,
ADDR XML )
IN DSN8D!!X.DSN8S!!Y
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.SUPPLIERS_SIDX
ON DSN8!!0.SUPPLIERS(SID)
USING STOGROUP DSN8G!!0;
CREATE TABLE DSN8!!0.PRODUCTSUPPLIER
( PID VARCHAR(10) NOT NULL,
SID VARCHAR(10) NOT NULL,
PRIMARY KEY(PID,SID) )
IN DSN8D!!X.DSN8S!!Z
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.PRODUCTSUPPLIER_PID_SIDX
ON DSN8!!0.PRODUCTSUPPLIER(PID,SID)
USING STOGROUP DSN8G!!0;
//*
//* STEP 3: CREATE SAMPLE MAPPING TABLE FOR ONLINE REORG
//*
//*********************************************************************
//* THE FOLLOWING IS AN EXAMPLE DEFINITION OF THE MAPPING TABLE *
//* THAT IS REQUIRED TO RUN AN ONLINE REORGANIZATION WITH SHRLEVEL *
//* CHANGE. *
//* *
//* A MAPPING TABLE MUST BE CREATED IN A SEGMENTED TABLE SPACE. *
//* THAT TABLESPACE SHOULD CONTAIN ONLY MAPPING TABLES. IT MUST *
//* NOT BE THE TABLE SPACE THAT IS TO BE REORGANIZED. *
//* *
//* IF YOU WANT CONCURRENT EXECUTIONS OF REORG (ON SEVERAL TABLE *
//* SPACES AND/OR ON SEVERAL PARTITIONS OF A TABLE SPACE) THE *
//* EXECUTIONS SHOULD USE DIFFERENT MAPPING TABLES. *
//*********************************************************************
//PH01S03 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
CREATE TABLE DSN8!!0.MAP_TBL
(TYPE CHAR( 01 ) NOT NULL,
SOURCE_RID CHAR( 07 ) NOT NULL,
TARGET_XRID CHAR( 11 ) NOT NULL,
LRSN CHAR( 10 ) NOT NULL)
IN DSN8D!!P.DSN8S!!Q
CCSID EBCDIC;
CREATE UNIQUE INDEX DSN8!!0.XMAP_TBL
ON DSN8!!0.MAP_TBL
(SOURCE_RID ASC,
TYPE,
TARGET_XRID,
LRSN)
USING STOGROUP DSN8G!!0
ERASE NO
BUFFERPOOL BP0
CLOSE NO;
//*
//* STEP 4: CREATE SAMPLE VIEWS
//*
//PH01S04 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
CREATE VIEW DSN8!!0.VDEPMG1
(DEPTNO, DEPTNAME, MGRNO, FIRSTNME, MIDINIT, LASTNAME, ADMRDEPT)
AS SELECT ALL
DEPTNO, DEPTNAME, EMPNO, FIRSTNME, MIDINIT, LASTNAME, ADMRDEPT
FROM DSN8!!0.DEPT LEFT OUTER JOIN DSN8!!0.EMP
ON MGRNO = EMPNO ;
CREATE VIEW DSN8!!0.VEMPDPT1
(DEPTNO, DEPTNAME, EMPNO, FRSTINIT, MIDINIT,
LASTNAME, WORKDEPT)
AS SELECT ALL
DEPTNO, DEPTNAME, EMPNO, SUBSTR(FIRSTNME, 1, 1), MIDINIT,
LASTNAME, WORKDEPT
FROM DSN8!!0.DEPT RIGHT OUTER JOIN DSN8!!0.EMP
ON WORKDEPT = DEPTNO ;
CREATE VIEW DSN8!!0.VASTRDE1
(DEPT1NO,DEPT1NAM,EMP1NO,EMP1FN,EMP1MI,EMP1LN,TYPE2,
DEPT2NO,DEPT2NAM,EMP2NO,EMP2FN,EMP2MI,EMP2LN)
AS SELECT ALL
D1.DEPTNO,D1.DEPTNAME,D1.MGRNO,D1.FIRSTNME,D1.MIDINIT,
D1.LASTNAME, '1',
D2.DEPTNO,D2.DEPTNAME,D2.MGRNO,D2.FIRSTNME,D2.MIDINIT,
D2.LASTNAME
FROM DSN8!!0.VDEPMG1 D1, DSN8!!0.VDEPMG1 D2
WHERE D1.DEPTNO = D2.ADMRDEPT ;
CREATE VIEW DSN8!!0.VASTRDE2
(DEPT1NO,DEPT1NAM,EMP1NO,EMP1FN,EMP1MI,EMP1LN,TYPE2,
DEPT2NO,DEPT2NAM,EMP2NO,EMP2FN,EMP2MI,EMP2LN)
AS SELECT ALL
D1.DEPTNO,D1.DEPTNAME,D1.MGRNO,D1.FIRSTNME,D1.MIDINIT,
D1.LASTNAME,'2',
D1.DEPTNO,D1.DEPTNAME,E2.EMPNO,E2.FIRSTNME,E2.MIDINIT,
E2.LASTNAME
FROM DSN8!!0.VDEPMG1 D1, DSN8!!0.EMP E2
WHERE D1.DEPTNO = E2.WORKDEPT;
CREATE VIEW DSN8!!0.VPROJRE1
(PROJNO,PROJNAME,PROJDEP,RESPEMP,FIRSTNME,MIDINIT,LASTNAME,MAJPROJ)
AS SELECT ALL
PROJNO,PROJNAME,DEPTNO,EMPNO,FIRSTNME,MIDINIT,LASTNAME,MAJPROJ
FROM DSN8!!0.PROJ, DSN8!!0.EMP
WHERE RESPEMP = EMPNO ;
CREATE VIEW DSN8!!0.VPSTRDE1
(PROJ1NO,PROJ1NAME,RESP1NO,RESP1FN,RESP1MI,RESP1LN,
PROJ2NO,PROJ2NAME,RESP2NO,RESP2FN,RESP2MI,RESP2LN)
AS SELECT ALL
P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT,
P1.LASTNAME,
P2.PROJNO,P2.PROJNAME,P2.RESPEMP,P2.FIRSTNME,P2.MIDINIT,
P2.LASTNAME
FROM DSN8!!0.VPROJRE1 P1,
DSN8!!0.VPROJRE1 P2
WHERE P1.PROJNO = P2.MAJPROJ ;
CREATE VIEW DSN8!!0.VPSTRDE2
(PROJ1NO,PROJ1NAME,RESP1NO,RESP1FN,RESP1MI,RESP1LN,
PROJ2NO,PROJ2NAME,RESP2NO,RESP2FN,RESP2MI,RESP2LN)
AS SELECT ALL
P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT,
P1.LASTNAME,
P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT,
P1.LASTNAME
FROM DSN8!!0.VPROJRE1 P1
WHERE NOT EXISTS
(SELECT * FROM DSN8!!0.VPROJRE1 P2
WHERE P1.PROJNO = P2.MAJPROJ) ;
CREATE VIEW DSN8!!0.VFORPLA
(PROJNO,PROJNAME,RESPEMP,PROJDEP,FRSTINIT,MIDINIT,LASTNAME)
AS SELECT ALL
F1.PROJNO,PROJNAME,RESPEMP,PROJDEP, SUBSTR(FIRSTNME, 1, 1),
MIDINIT, LASTNAME
FROM DSN8!!0.VPROJRE1 F1 LEFT OUTER JOIN DSN8!!0.EMPPROJACT F2
ON F1.PROJNO = F2.PROJNO;
CREATE VIEW DSN8!!0.VSTAFAC1
(PROJNO, ACTNO, ACTDESC, EMPNO, FIRSTNME, MIDINIT, LASTNAME,
EMPTIME,STDATE,ENDATE, TYPE)
AS SELECT ALL
PA.PROJNO, PA.ACTNO, AC.ACTDESC,' ', ' ', ' ', ' ',
PA.ACSTAFF, PA.ACSTDATE,
PA.ACENDATE,'1'
FROM DSN8!!0.PROJACT PA, DSN8!!0.ACT AC
WHERE PA.ACTNO = AC.ACTNO ;
CREATE VIEW DSN8!!0.VSTAFAC2
(PROJNO, ACTNO, ACTDESC, EMPNO, FIRSTNME, MIDINIT, LASTNAME,
EMPTIME,STDATE, ENDATE, TYPE)
AS SELECT ALL
EP.PROJNO, EP.ACTNO, AC.ACTDESC, EP.EMPNO,EM.FIRSTNME,
EM.MIDINIT, EM.LASTNAME, EP.EMPTIME, EP.EMSTDATE,
EP.EMENDATE,'2'
FROM DSN8!!0.EMPPROJACT EP, DSN8!!0.ACT AC, DSN8!!0.EMP EM
WHERE EP.ACTNO = AC.ACTNO AND EP.EMPNO = EM.EMPNO ;
CREATE VIEW DSN8!!0.VPHONE
(LASTNAME,
FIRSTNAME,
MIDDLEINITIAL,
PHONENUMBER,
EMPLOYEENUMBER,
DEPTNUMBER,
DEPTNAME)
AS SELECT ALL LASTNAME,
FIRSTNME,
MIDINIT ,
VALUE(PHONENO,' '),
EMPNO,
DEPTNO,
DEPTNAME
FROM DSN8!!0.EMP, DSN8!!0.DEPT
WHERE WORKDEPT = DEPTNO;
CREATE VIEW DSN8!!0.VEMPLP
(EMPLOYEENUMBER,
PHONENUMBER)
AS SELECT ALL EMPNO ,
PHONENO
FROM DSN8!!0.EMP ;
//*
//* STEP 5: DROP ALIASES
//*
//PH01S05 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) PARM('RC0') -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
DROP ALIAS ACT ;
DROP ALIAS TCONA ;
DROP ALIAS DEPT ;
DROP ALIAS TDSPTXT ;
DROP ALIAS EMP ;
DROP ALIAS EMPPROJACT ;
DROP ALIAS TOPTVAL ;
DROP ALIAS PROJACT ;
DROP ALIAS PROJ ;
DROP ALIAS VPHONE ;
DROP ALIAS VACT ;
DROP ALIAS VCONA ;
DROP ALIAS VDEPT ;
DROP ALIAS VHDEPT ;
DROP ALIAS VDSPTXT ;
DROP ALIAS VEMP ;
DROP ALIAS VEMPPROJACT ;
DROP ALIAS VOPTVAL ;
DROP ALIAS VPROJACT ;
DROP ALIAS VPROJ ;
DROP ALIAS VEMPLP ;
DROP ALIAS VDEPMG1 ;
DROP ALIAS VEMPDPT1 ;
DROP ALIAS VASTRDE1 ;
DROP ALIAS VASTRDE2 ;
DROP ALIAS VPROJRE1 ;
DROP ALIAS VPSTRDE1 ;
DROP ALIAS VPSTRDE2 ;
DROP ALIAS VFORPLA ;
DROP ALIAS VSTAFAC1 ;
DROP ALIAS VSTAFAC2 ;
DROP ALIAS PRODUCT ;
DROP ALIAS INVENTORY ;
DROP ALIAS CUSTOMER ;
DROP ALIAS PURCHASEORDER;
DROP ALIAS CATALOG ;
DROP ALIAS SUPPLIERS ;
DROP ALIAS PRODUCTSUPPLIER;
//*
//* STEP 6: GRANT AUTHORITY, CREATE ALIASES
//*
//PH01S06 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
CREATE ALIAS ACT FOR DSN8!!0.ACT ;
CREATE ALIAS TCONA FOR DSN8!!0.TCONA ;
CREATE ALIAS DEPT FOR DSN8!!0.DEPT ;
CREATE ALIAS TDSPTXT FOR DSN8!!0.TDSPTXT ;
CREATE ALIAS EMP FOR DSN8!!0.EMP ;
CREATE ALIAS EMPPROJACT FOR DSN8!!0.EMPPROJACT ;
CREATE ALIAS TOPTVAL FOR DSN8!!0.TOPTVAL ;
CREATE ALIAS PROJACT FOR DSN8!!0.PROJACT ;
CREATE ALIAS PROJ FOR DSN8!!0.PROJ ;
CREATE ALIAS VPHONE FOR DSN8!!0.VPHONE ;
CREATE ALIAS VACT FOR DSN8!!0.VACT ;
CREATE ALIAS VCONA FOR DSN8!!0.VCONA ;
CREATE ALIAS VDEPT FOR DSN8!!0.VDEPT ;
CREATE ALIAS VHDEPT FOR DSN8!!0.VHDEPT ;
CREATE ALIAS VDSPTXT FOR DSN8!!0.VDSPTXT ;
CREATE ALIAS VEMP FOR DSN8!!0.VEMP ;
CREATE ALIAS VEMPPROJACT FOR DSN8!!0.VEMPPROJACT ;
CREATE ALIAS VOPTVAL FOR DSN8!!0.VOPTVAL ;
CREATE ALIAS VPROJACT FOR DSN8!!0.VPROJACT ;
CREATE ALIAS VPROJ FOR DSN8!!0.VPROJ ;
CREATE ALIAS VEMPLP FOR DSN8!!0.VEMPLP ;
CREATE ALIAS VDEPMG1 FOR DSN8!!0.VDEPMG1 ;
CREATE ALIAS VEMPDPT1 FOR DSN8!!0.VEMPDPT1 ;
CREATE ALIAS VASTRDE1 FOR DSN8!!0.VASTRDE1;
CREATE ALIAS VASTRDE2 FOR DSN8!!0.VASTRDE2;
CREATE ALIAS VPROJRE1 FOR DSN8!!0.VPROJRE1;
CREATE ALIAS VPSTRDE1 FOR DSN8!!0.VPSTRDE1;
CREATE ALIAS VPSTRDE2 FOR DSN8!!0.VPSTRDE2;
CREATE ALIAS VFORPLA FOR DSN8!!0.VFORPLA;
CREATE ALIAS VSTAFAC1 FOR DSN8!!0.VSTAFAC1;
CREATE ALIAS VSTAFAC2 FOR DSN8!!0.VSTAFAC2;
CREATE ALIAS PRODUCT FOR DSN8!!0.PRODUCT;
CREATE ALIAS INVENTORY FOR DSN8!!0.INVENTORY;
CREATE ALIAS CUSTOMER FOR DSN8!!0.CUSTOMER;
CREATE ALIAS PURCHASEORDER FOR DSN8!!0.PURCHASEORDER;
CREATE ALIAS CATALOG FOR DSN8!!0.CATALOG;
CREATE ALIAS SUPPLIERS FOR DSN8!!0.SUPPLIERS;
CREATE ALIAS PRODUCTSUPPLIER FOR DSN8!!0.PRODUCTSUPPLIER;
GRANT USE OF STOGROUP DSN8G!!0
TO PUBLIC;
GRANT DBADM ON DATABASE DSN8D!!A
TO PUBLIC;
GRANT DBADM ON DATABASE DSN8D!!P
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!A.DSN8S!!D
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!A.DSN8S!!E
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!A.DSN8S!!M
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!A.DSN8S!!N
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!A.DSN8S!!O
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!A.DSN8S!!P
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!A.DSN8S!!S
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!P.DSN8S!!A
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!P.DSN8S!!B
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!P.DSN8S!!C
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!P.DSN8S!!Q
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!X.DSN8S!!T
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!X.DSN8S!!U
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!X.DSN8S!!V
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!X.DSN8S!!W
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!X.DSN8S!!X
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!X.DSN8S!!Y
TO PUBLIC;
GRANT USE OF TABLESPACE DSN8D!!X.DSN8S!!Z
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.ACT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.TCONA
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.DEPT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.TDSPTXT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.EMP
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.EMPPROJACT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.TOPTVAL
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.PARTS
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.PROJACT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.PROJ
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.MAP_TBL
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VPHONE
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VACT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VCONA
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VDEPT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VHDEPT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VDSPTXT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VEMP
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VEMPPROJACT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VOPTVAL
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VPROJACT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VPROJ
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VEMPLP
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VDEPMG1
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VEMPDPT1
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VASTRDE1
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VASTRDE2
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VPROJRE1
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VPSTRDE1
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VPSTRDE2
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VFORPLA
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VSTAFAC1
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.VSTAFAC2
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.PRODUCT
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.INVENTORY
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.CUSTOMER
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.PURCHASEORDER
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.CATALOG
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.SUPPLIERS
TO PUBLIC;
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8!!0.PRODUCTSUPPLIER
TO PUBLIC;
//*
//*
//*
//* STEP 7: ASSEMBLE AND LINKEDIT EDIT EXIT
//*
//PH01S07 EXEC ASMCL,MEM=DSN8EAE1,COND=(4,LT),
// PARM.LKED='LIST,XREF,NCAL,RENT,AMODE=31,RMODE=ANY'
//*
//* STEP 8: ASSEMBLE AND LINKEDIT EDIT EXIT
//*
//PH01S08 EXEC ASMCL,MEM=DSN8HUFF,COND=(4,LT),
// PARM.LKED='LIST,XREF,NCAL,RENT,AMODE=31,RMODE=ANY'
//*
//* STEP 9: ASSEMBLE AND LINKEDIT FIELD PROCEDURE
//*
//PH01S09 EXEC ASMCL,MEM=DSN8FPRC,COND=(4,LT),
// PARM.ASM='RENT,OBJECT,NODECK,SYSPARM(FLDPROC)',
// PARM.LKED='LIST,XREF,NCAL,RENT,AMODE=31,RMODE=ANY'
//*
//* STEP 10: PRECOMPILE, ASSEMBLE AND LINKEDIT THE
//* CALL ATTACH ASSEMBLER INTERFACE
//*
//PH01S10 EXEC DSNHASM,MEM=DSN8CA,
// COND=(4,LT),
// PARM.PC='HOST(ASM),STDSQL(NO)',
// PARM.ASM='RENT,OBJECT,NODECK',
// PARM.LKED='RENT,XREF,AMODE=31,RMODE=ANY'
//PC.DBRMLIB DD DISP=SHR,
// DSN=DSN!!0.DBRMLIB.DATA(DSN8CA)
//PC.SYSLIB DD DSN=DSN!!0.SDSNSAMP,
// DISP=SHR
//PC.SYSIN DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8CA)
//ASM.SYSLIB DD
// DD DSN=DSN!!0.SDSNSAMP,
// DISP=SHR
//LKED.SYSLMOD DD DISP=SHR,
// DSN=DSN!!0.RUNLIB.LOAD(DSN8CA)
//LKED.SYSIN DD *
INCLUDE SYSLIB(DSNALI)
//*
//* STEP 11: CREATE SAMPLE UTILITY LIST
//*
//PH01S11 EXEC PGM=IEBGENER,COND=(4,LT)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD *
LISTDEF DSN8LDEF
INCLUDE TABLESPACES DATABASE DSN8D!!A
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!F
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!G
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!H
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!I
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!J
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!R
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!S
//SYSUT2 DD DSN=DSN!!0.DSN8.LISTDEF,
// DISP=(,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(TRK,1),
// DCB=(RECFM=FB,LRECL=80)
//*
//* STEP 12: LOAD DATA INTO SAMPLE PROGRAM TABLES
//*
//PH01S12 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSRECDT DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LDT)
//SYSRECOV DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LOV)
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)
//SYSIN DD *
LOAD DATA INDDN(SYSRECOV) CONTINUEIF(72:72)='X'
INTO TABLE DSN8!!0.TOPTVAL
(MAJSYS POSITION( 2) CHAR(1),
ACTION POSITION( 4) CHAR(1),
OBJFLD POSITION( 6) CHAR(2),
SRCHCRIT POSITION( 9) CHAR(2),
SCRTYPE POSITION( 12) CHAR(1),
HEADTXT POSITION( 80) CHAR(50),
SELTXT POSITION(159) CHAR(50),
INFOTXT POSITION(238) CHAR(71),
HELPTXT POSITION(317) CHAR(71),
PFKTXT POSITION(396) CHAR(71),
DSPINDEX POSITION(475) CHAR(2))
SORTDEVT SYSDA SORTNUM 4
LOAD DATA INDDN(SYSRECDT) CONTINUEIF(72:72)='X'
INTO TABLE DSN8!!0.TDSPTXT
(DSPINDEX POSITION( 2) CHAR(2),
LINENO POSITION( 6) CHAR(2),
DSPLINE POSITION(80) CHAR(71))
SORTDEVT SYSDA SORTNUM 4
//*
//* STEP 13: LOAD DATA INTO SAMPLE APPLICATION TABLES
//*
//PH01S13 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSRECAC DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LAC)
//SYSRECDP DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LDP)
//SYSRECEM DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LEM)
//SYSRECEP DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LEP)
//SYSRECPA DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LPA)
//SYSRECPJ DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LPJ)
//SYSRECXP DD DISP=SHR,
// DSN=DSN!!0.SDSNIVPD(DSN8LXPR)
//SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSMAP DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
LOAD DATA INDDN(SYSRECDP)
INTO TABLE DSN8!!0.DEPT
(DEPTNO POSITION( 1) CHAR(3),
DEPTNAME POSITION( 5) VARCHAR,
MGRNO POSITION(37) CHAR(6) NULLIF(MGRNO=' '),
ADMRDEPT POSITION(44) CHAR(3),
LOCATION POSITION(48) CHAR(16))
ENFORCE NO
SORTDEVT SYSDA SORTNUM 4
LOAD DATA INDDN(SYSRECEM) CONTINUEIF(72:72)='X'
INTO TABLE DSN8!!0.EMP
(EMPNO POSITION( 1) CHAR(6),
FIRSTNME POSITION( 8) VARCHAR,
MIDINIT POSITION(21) CHAR(1),
LASTNAME POSITION(23) VARCHAR,
WORKDEPT POSITION(36) CHAR(3),
PHONENO POSITION(40) CHAR(4),
HIREDATE POSITION(45) DATE EXTERNAL,
JOB POSITION(56) CHAR(8),
EDLEVEL POSITION(65) INTEGER EXTERNAL(2),
SEX POSITION(68) CHAR(1),
BIRTHDATE POSITION(80) DATE EXTERNAL,
SALARY POSITION(91) INTEGER EXTERNAL(5),
BONUS POSITION(97) INTEGER EXTERNAL(5),
COMM POSITION(103) INTEGER EXTERNAL(5))
ENFORCE CONSTRAINTS MAPDDN SYSMAP
SORTDEVT SYSDA SORTNUM 4
LOAD DATA INDDN(SYSRECPJ) CONTINUEIF(72:72)='X'
INTO TABLE DSN8!!0.PROJ
(PROJNO POSITION( 1) CHAR(6),
PROJNAME POSITION( 8) VARCHAR,
DEPTNO POSITION(33) CHAR(3),
RESPEMP POSITION(37) CHAR(6),
PRSTAFF POSITION(44) DECIMAL EXTERNAL(5),
PRSTDATE POSITION(50) DATE EXTERNAL,
PRENDATE POSITION(61) DATE EXTERNAL,
MAJPROJ POSITION(80) CHAR(6) NULLIF(MAJPROJ=' '))
ENFORCE NO
SORTDEVT SYSDA SORTNUM 4
LOAD DATA INDDN(SYSRECAC)
INTO TABLE DSN8!!0.ACT
(ACTNO POSITION( 1) INTEGER EXTERNAL(3),
ACTKWD POSITION( 5) CHAR(6),
ACTDESC POSITION(13) VARCHAR)
ENFORCE NO
SORTDEVT SYSDA SORTNUM 4
LOAD DATA INDDN(SYSRECPA)
INTO TABLE DSN8!!0.PROJACT
(PROJNO POSITION( 1) CHAR(6),
ACTNO POSITION( 8) INTEGER EXTERNAL(3),
ACSTAFF POSITION(12) DECIMAL EXTERNAL(5),
ACSTDATE POSITION(18) DATE EXTERNAL,
ACENDATE POSITION(29) DATE EXTERNAL)
ENFORCE NO
SORTDEVT SYSDA SORTNUM 4
LOAD DATA INDDN(SYSRECEP)
INTO TABLE DSN8!!0.EMPPROJACT
(EMPNO POSITION( 1) CHAR(6),
PROJNO POSITION( 8) CHAR(6),
ACTNO POSITION(16) INTEGER EXTERNAL(3),
EMPTIME POSITION(20) DECIMAL EXTERNAL(5),
EMSTDATE POSITION(26) DATE EXTERNAL,
EMENDATE POSITION(37) DATE EXTERNAL)
ENFORCE NO
SORTDEVT SYSDA SORTNUM 4
LOAD DATA INDDN(SYSRECXP)
INTO TABLE DSN8!!0.PRODUCT
(PID POSITION(1) CHAR(10),
,NAME POSITION(11) VARCHAR NULLIF(140)='?'
,PRICE POSITION(141) DECIMAL NULLIF(157)='?'
,PROMOPRICE POSITION(158) DECIMAL NULLIF(174)='?'
,PROMOSTART POSITION(175) DATE EXTERNAL(10) NULLIF(185)='?'
,PROMOEND POSITION(186) DATE EXTERNAL(10) NULLIF(196)='?'
,DESCRIPTION POSITION(197) XML)
SORTDEVT SYSDA SORTNUM 4
//*
//* STEP 14: CHECK DATA FOR REFERENTIAL INTEGRITY
//*
//PH01S14 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
CHECK DATA TABLESPACE DSN8D!!A.DSN8S!!D
TABLESPACE DSN8D!!A.DSN8S!!E
TABLESPACE DSN8D!!A.DSN8S!!M
TABLESPACE DSN8D!!A.DSN8S!!O
TABLESPACE DSN8D!!A.DSN8S!!P
SCOPE ALL
DELETE YES
FOR EXCEPTION IN DSN8!!0.DEPT USE DSN8!!0.EDEPT
IN DSN8!!0.EMP USE DSN8!!0.EEMP
IN DSN8!!0.PROJ USE DSN8!!0.EPROJ
IN DSN8!!0.ACT USE DSN8!!0.EACT
IN DSN8!!0.PROJACT USE DSN8!!0.EPROJACT
IN DSN8!!0.EMPPROJACT USE DSN8!!0.EEPA
EXCEPTIONS 50
SORTDEVT SYSDA SORTNUM 4
//*
//* STEP 15: ESTABLISH A QUIESCE POINT
//* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY
//* CANNOT BE TAKEN
//*
//PH01S15 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSLISTD DD DISP=SHR,DSN=DSN!!0.DSN8.LISTDEF
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
QUIESCE LIST DSN8LDEF
//*
//* STEP 16: TAKE IMAGE COPY OF SAMPLE TABLES
//*
//PH01S16 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSLISTD DD DISP=SHR,DSN=DSN!!0.DSN8.LISTDEF
// DD *
INCLUDE TABLESPACE DSN8D!!P.DSN8S!!A
INCLUDE TABLESPACE DSN8D!!P.DSN8S!!B
INCLUDE TABLESPACE DSN8D!!P.DSN8S!!C
//DSNTRACE DD SYSOUT=*
//SYSIN DD *
TEMPLATE DSN8TPLT
DSN(DSN!!0.SYSCOPY.&DB..&TS.)
DISP (NEW,CATLG,DELETE)
UNIT SYSDA
PCTPRIME 100 MAXPRIME 5 NBRSECND 10
COPY LIST DSN8LDEF
COPYDDN(DSN8TPLT)
//*
//* STEP 17: ESTABLISH A QUIESCE POINT USING ONLY IMAGE COPIES
//*
//PH01S17 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSLISTD DD DISP=SHR,DSN=DSN!!0.DSN8.LISTDEF
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
QUIESCE LIST DSN8LDEF
//*
//* STEP 18: REORGANIZE TABLESPACES, PRODUCE STATISTICS
//*
//PH01S18 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSLISTD DD DISP=SHR,DSN=DSN!!0.DSN8.LISTDEF
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)
//SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND)
//SYSIN DD *
REORG TABLESPACE DSN8D!!A.DSN8S!!D
SORTDEVT SYSDA SORTNUM 4
RUNSTATS TABLESPACE LIST DSN8LDEF
INDEX(ALL)
//*
//* STEP 19: RUN ONLINE REORG OF TBLSPACE USING SHRLEVEL CHANGE
//*
//PH01S19 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)
//SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND)
//SYSIN DD *
TEMPLATE DSN8TPCY
DSN(DSN!!0.&DB..&TS..REORGCPY)
DISP(NEW,CATLG,DELETE)
UNIT SYSDA
PCTPRIME 100 MAXPRIME 1 NBRSECND 1
REORG TABLESPACE DSN8D!!P.DSN8S!!A
COPYDDN(DSN8TPCY)
SHRLEVEL CHANGE
DEADLINE NONE
MAPPINGTABLE DSN8!!0.MAP_TBL
MAXRO 240 LONGLOG DRAIN DELAY 900
SORTDEVT SYSDA SORTNUM 4
RUNSTATS TABLESPACE DSN8D!!P.DSN8S!!A
INDEX(ALL)
REORG TABLESPACE DSN8D!!P.DSN8S!!B
COPYDDN(DSN8TPCY)
SHRLEVEL CHANGE
DEADLINE NONE
MAPPINGTABLE DSN8!!0.MAP_TBL
MAXRO 240 LONGLOG DRAIN DELAY 900
SORTDEVT SYSDA SORTNUM 4
RUNSTATS TABLESPACE DSN8D!!P.DSN8S!!B
INDEX(ALL)
REORG TABLESPACE DSN8D!!P.DSN8S!!C
COPYDDN(DSN8TPCY)
SHRLEVEL CHANGE
DEADLINE NONE
MAPPINGTABLE DSN8!!0.MAP_TBL
MAXRO 240 LONGLOG DRAIN DELAY 900
SORTDEVT SYSDA SORTNUM 4
RUNSTATS TABLESPACE DSN8D!!P.DSN8S!!C
INDEX(ALL)
//*
//* STEP 20: LOAD DATA INTO PART 3 OF DSN8D!!A.DSN8S!!E
//*
//PH01S20 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSRECE3 DD DISP=SHR,
// DSN=DSN!!0.SDSNSAMP(DSN8LE3)
//SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSMAP DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
LOAD DATA INDDN(SYSRECE3) CONTINUEIF(72:72)='X'
RESUME YES
INTO TABLE DSN8!!0.EMP
PART 3
REPLACE
(EMPNO POSITION( 1) CHAR(6),
FIRSTNME POSITION( 8) VARCHAR,
MIDINIT POSITION(21) CHAR(1),
LASTNAME POSITION(23) VARCHAR,
WORKDEPT POSITION(36) CHAR(3),
PHONENO POSITION(40) CHAR(4),
HIREDATE POSITION(45) DATE EXTERNAL,
JOB POSITION(56) CHAR(8),
EDLEVEL POSITION(65) INTEGER EXTERNAL(2),
SEX POSITION(68) CHAR(1),
BIRTHDATE POSITION(80) DATE EXTERNAL,
SALARY POSITION(91) INTEGER EXTERNAL(5),
BONUS POSITION(97) INTEGER EXTERNAL(5),
COMM POSITION(103) INTEGER EXTERNAL(5))
ENFORCE CONSTRAINTS MAPDDN SYSMAP
SORTDEVT SYSDA SORTNUM 4
//*
//* STEP 21: SET CURRENT RULES THEN ALTER TABLE
//*
//PH01S21 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
SET CURRENT RULES = 'DB2';
COMMIT;
ALTER TABLE EMP ADD CONSTRAINT PERSON
CHECK (SEX = 'M' OR SEX = 'F');
COMMIT;
//*
//* STEP 22: CHECK DATA IN PART 3 OF DSN8D!!A.DSN8S!!E
//* FOR REFERENTIAL INTEGRITY
//*
//PH01S22 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
CHECK DATA TABLESPACE DSN8D!!A.DSN8S!!D
TABLESPACE DSN8D!!A.DSN8S!!E
TABLESPACE DSN8D!!A.DSN8S!!M
TABLESPACE DSN8D!!A.DSN8S!!N
TABLESPACE DSN8D!!A.DSN8S!!O
TABLESPACE DSN8D!!A.DSN8S!!P
SCOPE ALL
DELETE YES
FOR EXCEPTION IN DSN8!!0.DEPT USE DSN8!!0.EDEPT
IN DSN8!!0.EMP USE DSN8!!0.EEMP
IN DSN8!!0.PROJ USE DSN8!!0.EPROJ
IN DSN8!!0.ACT USE DSN8!!0.EACT
IN DSN8!!0.PROJACT USE DSN8!!0.EPROJACT
IN DSN8!!0.EMPPROJACT USE DSN8!!0.EEPA
EXCEPTIONS 50
SORTDEVT SYSDA SORTNUM 4
//*
//* STEP 23: ATTEMPT INSERT INTO THE EMP TABLE
//*
//PH01S23 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) PARM('RC0') -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
INSERT INTO EMP
VALUES ('000011', 'CHRISTINE', 'I', 'HAAS', 'A00', 'A1A1',
'1965-01-01', 'PRES', 18, 'F', '1933-08-14',
52750, 1000, 4220);
COMMIT;
INSERT INTO EMP
VALUES ('200011', 'DIANE', 'J', 'HEMMINGER', 'A00', '3978',
'1965-01-01', 'SALESREP', 18, 'U', '1933-08-14',
46500, 1000, 4220);
COMMIT;
//*
//* STEP 24: ESTABLISH A QUIESCE POINT FOR PART 3
//* OF DSN8D!!A.DSN8S!!E
//* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY
//* CANNOT BE TAKEN
//*
//PH01S24 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
QUIESCE TABLESPACE DSN8D!!A.DSN8S!!E
PART 3
//*
//* STEP 25: TAKE IMAGE COPY OF PART 3 OF DSN8D!!A.DSN8S!!E
//*
//PH01S25 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//DSNTRACE DD SYSOUT=*
//SYSCOPY DD DSN=DSN!!0.DSN8D!!A.DSN8S!!E.PART3,
// DISP=(NEW,CATLG),
// UNIT=SYSDA,
// SPACE=(4000,(20,20))
//SYSIN DD *
COPY TABLESPACE DSN8D!!A.DSN8S!!E
DSNUM 3 COPYDDN SYSCOPY
//*
//* STEP 26: ESTABLISH A QUIESCE POINT FOR PART 3
//* OF DSN8D!!A.DSN8S!!E USING ONLY IMAGE COPY
//* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY
//* CANNOT BE TAKEN
//*
//PH01S26 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//SYSIN DD *
QUIESCE TABLESPACE DSN8D!!A.DSN8S!!E
PART 3
//*
//* STEP 27: PRODUCE STATISTICS FOR PART 3 OF
//* OF DSN8D!!A.DSN8S!!E
//*
//PH01S27 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)
//SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND)
//SYSIN DD *
RUNSTATS TABLESPACE DSN8D!!A.DSN8S!!E
PART 3
INDEX(ALL)
//*
//* STEP 28: UNLOAD PARTITIONS 1,3, AND 4
//* OF DSN8D!!A.DSN8S!!E
//*
//PH01S28 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
LISTDEF DSN8LDUL
INCLUDE TABLESPACE DSN8D!!A.DSN8S!!E PARTLEVEL
EXCLUDE TABLESPACE DSN8D!!A.DSN8S!!E PARTLEVEL(2)
TEMPLATE DSN8TPPU
DSN(DSN!!0.&DB..&TS..SYSPUNCH)
DISP(NEW,CATLG,DELETE)
UNIT SYSDA
PCTPRIME 100 MAXPRIME 1 NBRSECND 1
TEMPLATE DSN8TPSY
DSN(DSN!!0.&DB..&TS..P&PART.)
DISP(NEW,CATLG,DELETE)
UNIT SYSDA
PCTPRIME 100 MAXPRIME 5 NBRSECND 10
UNLOAD LIST DSN8LDUL
PUNCHDDN(DSN8TPPU)
UNLDDN(DSN8TPSY)
EBCDIC
NOPAD
//*
//* STEP 29: REDUCE THE PARTITIONING KEY ON PARTITION 4 OF
//* TABLESPACE DSN8S!!E
//*
//PH01S29 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
ALTER TABLE DSN8!!0.EMP ALTER PART 4 VALUES('499999');
//*
//* STEP 30: REORGANIZE TABLESPACE DSN8D!!A.DSN8S!!E
//*
//PH01S30 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SYSLISTD DD DISP=SHR,DSN=DSN!!0.DSN8.LISTDEF
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)
//SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND)
//SYSIN DD *
TEMPLATE DSN8TPPU
DSN(DSN!!0.&DB..&TS..REORGPUN)
DISP(NEW,CATLG,DELETE)
UNIT SYSDA
PCTPRIME 100 MAXPRIME 1 NBRSECND 1
TEMPLATE DSN8TPCY
DSN(DSN!!0.&DB..&TS..REORGCPY)
DISP(NEW,CATLG,DELETE)
UNIT SYSDA
PCTPRIME 100 MAXPRIME 1 NBRSECND 1
TEMPLATE DSN8TPDS
DSN(DSN!!0.&DB..&TS..REORGDSC)
DISP(NEW,CATLG,DELETE)
UNIT SYSDA
PCTPRIME 100 MAXPRIME 1 NBRSECND 1
REORG TABLESPACE DSN8D!!A.DSN8S!!E
SHRLEVEL REFERENCE
PART 1:4
PUNCHDDN(DSN8TPPU)
COPYDDN(DSN8TPCY)
DISCARDDN(DSN8TPDS)
SORTDEVT SYSDA SORTNUM 4
//*
//* STEP 31: ADD A FIFTH PARTITION TO
//* TABLESPACE DSN8S!!E
//*
//PH01S31 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
-STOP DB(DSN8D!!A) SPACENAM(*)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
-START DB(DSN8D!!A) SPACENAM(*)
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
ALTER TABLE DSN8!!0.EMP ADD PARTITION ENDING AT('999999');
//*
//* STEP 32: EXTEND THE LENGTH OF A FIXED CHAR
//* COLUMN IN THE PARTS TABLE. ALSO
//* CONVERT A SMALL INTEGER FIELD TO
//* A DECIMAL TYPE FIELD OF EEMP TABLE.
//*
//PH01S32 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
LIB('DSN!!0.RUNLIB.LOAD')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'SYSADM';
ALTER TABLE DSN8!!0.PARTS ALTER COLUMN ITEMNUM
SET DATA TYPE VARCHAR(10);
ALTER TABLE DSN8!!0.EEMP ALTER COLUMN EDLEVEL
SET DATA TYPE DECIMAL(5, 0);
//*
//* STEP 33: REORGANIZE TABLESPACE DSN8D!!A.DSN8S!!R AND
//* DSN8D!!A.DSN8S!!S TO RESET REORG-PENDING STATUS
//*
//PH01S33 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)
//DSNTRACE DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)
//SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND)
//SYSIN DD *
REORG TABLESPACE DSN8D!!A.DSN8S!!F
SORTDEVT SYSDA SORTNUM 4
REORG TABLESPACE DSN8D!!A.DSN8S!!G
SORTDEVT SYSDA SORTNUM 4
REORG TABLESPACE DSN8D!!A.DSN8S!!H
SORTDEVT SYSDA SORTNUM 4
REORG TABLESPACE DSN8D!!A.DSN8S!!I
SORTDEVT SYSDA SORTNUM 4
REORG TABLESPACE DSN8D!!A.DSN8S!!J
SORTDEVT SYSDA SORTNUM 4
REORG TABLESPACE DSN8D!!A.DSN8S!!R
SORTDEVT SYSDA SORTNUM 4
REORG TABLESPACE DSN8D!!A.DSN8S!!S
SORTDEVT SYSDA SORTNUM 4
//*
