├── DB2
├── GetNewParts.JCL
├── CatalogQueries
│ ├── getPartitionSpace.sql
│ ├── columnDetails.sql
│ ├── getMultColumns.sql
│ ├── accessMatrix.sql
│ └── getSpaceDetails.sql
└── commands.db2
├── REXX
├── new.rexx
├── RunSQL.rexx
└── delempo.rexx
├── Cobol
├── basics
│ ├── abc.cbl
│ └── var.cbl
├── db2oper
│ ├── pcledit.jcl
│ ├── rundb2.jcl
│ ├── bind.jcl
│ ├── db2curs.cbl
│ └── db2oper.cbl
├── SpecialNames.cob
├── cics
│ ├── calc.cpybk
│ ├── calc.bms
│ └── calc.cbl
└── fileop
│ └── READPS.cob
├── .project
├── README.md
├── JCL
├── sort
│ ├── sortcnt.jcl
│ ├── icecnt.jcl
│ ├── sortht.jcl
│ ├── sortsplit.jcl
│ ├── compare.jcl
│ └── sortdup.jcl
├── basics
│ ├── listcat.jcl
│ ├── delete.jcl
│ ├── rename.jcl
│ ├── iebcopy.jcl
│ └── compare.jcl
├── db2-utils
│ ├── db2commands.jcl
│ ├── unload.jcl
│ └── bind.jcl
└── utils
│ ├── decompress.jcl
│ ├── compress.jcl
│ └── timestamp.jcl
└── PL1
├── basics
└── datatyp.pli
└── builtin
└── string.pli
/DB2/GetNewParts.JCL:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/REXX/new.rexx:
--------------------------------------------------------------------------------
1 | /*REXX*/
--------------------------------------------------------------------------------
/DB2/CatalogQueries/getPartitionSpace.sql:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/REXX/RunSQL.rexx:
--------------------------------------------------------------------------------
1 | /*REXX*/
2 | /*Rexx script to run DB2 SQL using Rexx */
3 |
--------------------------------------------------------------------------------
/DB2/CatalogQueries/columnDetails.sql:
--------------------------------------------------------------------------------
1 | select c.name,c.tbname,t.creator,t.owner
2 | from sysibm.syscolumns c, sysibm.systables t
3 | where t.name = c.tbname;
4 |
5 |
--------------------------------------------------------------------------------
/Cobol/basics/abc.cbl:
--------------------------------------------------------------------------------
1 | 01 WS-COPY.
2 | 05 WS-COPY-1 PIC 9(2) VALUE 24.
3 | 05 WS-COPY-2 PIC X(2) VALUE 'AB'.
4 | 01 WS-NAMES.
5 | 05 WS-FIRSTNAME PIC X(20) VALUE 'FIRST'.
6 | 05 WS-LASTNAME PIC X(20) VALUE 'LAST'.
7 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | myMainframe
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/DB2/CatalogQueries/getMultColumns.sql:
--------------------------------------------------------------------------------
1 | --lists multiple columns which are present insame table
2 | select * from sysibm.syscolumns c1
3 | where name in ('COL1','COL2')
4 | and tbname = (select name from sysibm.syscolumns c2
5 | where c1.tbname = c2.tbname and c1.name = c2.name)
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # myMainframe
2 | - Useful mainframe related tips and quick codes which can help to start working or understanding on mainframe related.
3 | - Many updates will come soon
4 | - Quick rexx codes for Automation
5 | - Usefull JCL's that can help debug
6 | - Programs for error handling
7 | - Many more
8 |
--------------------------------------------------------------------------------
/JCL/sort/sortcnt.jcl:
--------------------------------------------------------------------------------
1 | //* JCL TO COUNT THE RECORDS IN INPUT FILE(BASED ON COND)
2 | //STEP010 EXEC PGM=SORT
3 | //SORTIN DD DSN=
4 | //SORTOUT DD SYSOUT=* /* DISPLAY IN SPOOL
5 | //SYSIN DD *
6 | OPTION COPY
7 | OUTFIL REMOVECC,NODETAIL
8 | SECTIONS=(1,2,
9 | TRAILER3=(1,2,X,COUNT=(M11,LENGTH=9)))
10 | /*
11 | //* Group from input the counts of Unique Values in Position 1,2
12 |
--------------------------------------------------------------------------------
/JCL/sort/icecnt.jcl:
--------------------------------------------------------------------------------
1 | //* TO GET THE REPORT OF FILE BASED ON
2 | //* SPECIFIC COLUMN
3 | //STEP010 EXEC PGM=ICETOOL
4 | //INDD DD DSN=,DISP=SHR
5 | //RPT DD DSN=* /* OR CHANGE TO ANY FILE
6 | //TOOLIN DD *
7 | OCCURS FROM(INDD) ON(1,10,CH) -
8 | ON(20,3,CH) -
9 | ON(VALCNT) BLANK-
10 | HEADER('FCOL') HEADER('SCOL') HEADER('TCOL')
11 | /*
12 |
--------------------------------------------------------------------------------
/JCL/sort/sortht.jcl:
--------------------------------------------------------------------------------
1 | //* ICETOOL to remove Header and Trailer from i/p file
2 | //STEP001 EXEC PGM=ICETOOL
3 | //TOOLMSG DD SYSOUT=*
4 | //DFSMSG DD SYSOUT=*
5 | //INDD DD DSN=,DISP=SHR
6 | //OUTDD DD DSN=,DISP=MOD
7 | //TOOLIN DD *
8 | SUBSET FROM(INDD) TO(OUTDD) INPUT REMOVE HEADER TRAILER
9 | /*
10 | //CTL1CNT DD *
11 | SORT FIELDS=COPY
12 | /*
13 | //* TO REMOVE LAST RECORD WE CAN USE
14 | //* REMOVE INPUT LAST
15 |
--------------------------------------------------------------------------------
/Cobol/db2oper/pcledit.jcl:
--------------------------------------------------------------------------------
1 | //IBMLIB JCLLIB ORDER='SYS1.ADMIN.PROCLIB'
2 | //JS0010 EXEC DSNH7COB,MEMBER=DB2CURS,
3 | // SRCELIB=TRNG497.COBOL.SRC,
4 | // DBRMLIB=TRNG497.COBOL.DBRM,
5 | //* INCLLIB=TRNG01.DCLGEN(M1),
6 | // LOADLIB=TRNG497.COBOL.LOAD
7 | //*SYSOUT DD SYSOUT=*
8 | //*SYSPRINT DD SYSOUT=*
9 | /*
10 |
--------------------------------------------------------------------------------
/JCL/basics/listcat.jcl:
--------------------------------------------------------------------------------
1 | //* JCL List cat to find out all details about a file *//
2 | //* Modified: 26-12-2016 By : Phani *//
3 | //* *//
4 | //STEP010 EXEC PGM=IDCAMS
5 | //SYSPRINT DD SYSOUT=*
6 | //SYSIN DD *
7 | LISTCAT ENTRIES('filename') VOLUME/ALL/ALLOCATION
8 | /*
--------------------------------------------------------------------------------
/JCL/basics/delete.jcl:
--------------------------------------------------------------------------------
1 | //* Delete gdg,vsam files *//
2 | //* Modified: 26-12-2016 By : Phani *//
3 | //* *//
4 | //STEP1 EXEC PGM=IDCAMS
5 | //SYSPRINT DD SYSOUT=*
6 | //SYSIN DD *
7 | DELETE ()GDG FORCE
8 | /*
--------------------------------------------------------------------------------
/JCL/sort/sortsplit.jcl:
--------------------------------------------------------------------------------
1 | //* JCL TO SORT AND SPLIT THE FILE INTO MULTIPLE FILES
2 | //* BASED ON GIVEN CONDITION
3 | //STEP010 EXEC PGM=SORT
4 | //SORTIN DD DSN=,DISP=SHR
5 | //SORTOF1 DD DSN=,DISP=OLD /* CHANGE TO NEW FOR NEW
6 | //SORTOF2 DD DSN=,DISP=OLD /* CHANGE TO NEW FOR NEW
7 | //SYSIN DD *
8 | SORT FIELDS=COPY
9 | OUTFIL FILE=01,
10 | INCLUDE=(1,2,CH,EQ,'AB',AND,5,2,CH,EQ,'12')
11 | OUTFILE FILE=02,
12 | INCLUDE=(1,2,CH,NE,'AB',AND',5,2,CH,NE,'12')
13 | /*
14 |
--------------------------------------------------------------------------------
/JCL/basics/rename.jcl:
--------------------------------------------------------------------------------
1 | //* JCL to RENAME ANY FILE, VSAM,PS,PDS ETC *//
2 | //* Modified: 26-12-2016 By : Phani *//
3 | //* *//
4 | //STEP010 EXEC PGM=IDCAMS,COND=(0,NE)
5 | //SYSPRINT DD SYSOUT=*
6 | //SYSIN DD *
7 | ALTER -
8 | NEWNAME()
9 | /*
--------------------------------------------------------------------------------
/JCL/db2-utils/db2commands.jcl:
--------------------------------------------------------------------------------
1 | //* JCL to RUN SQL COMMANDS (DB2I, DB2 INTERACTIVE) *//
2 | //* Modified: 26-12-2016 By : Phani *//
3 | //* *//
4 | //STEP01 EXEC PGM=IKJEFT01,DYNAMNBR=20
5 | //SYSTSPRT DD SYSOUT=*
6 | //SYSPRINT DD SYSOUT=*
7 | //SYSUDUMP DD SYSOUT=*
8 | //SYSOUT DD SYSOUT=*
9 | //SYSTSIN DD *
10 | DSN SYSTEM()
11 | -DISPLAY DATABASE() SPACENAM(*)
12 | END
13 | //SYSIN DD DUMMY
--------------------------------------------------------------------------------
/DB2/CatalogQueries/accessMatrix.sql:
--------------------------------------------------------------------------------
1 | SELECT distinct GRANTEE, STNAME AS TABEL_VIEW,
2 | CASE SELECTAUTH WHEN 'Y' THEN 'SEL' ELSE '...' END AS SEL,
3 | CASE INSERTAUTH WHEN 'Y' THEN 'INS' ELSE '...' END AS INS,
4 | CASE UPDATEAUTH WHEN 'Y' THEN 'UPD' ELSE '...' END AS UPD,
5 | CASE DELETEAUTH WHEN 'Y' THEN 'DEL' ELSE '...' END AS DEL
6 | FROM SYSIBM.SYSCOLUMNS a, SYSIBM.SYSTABAUTH ac
7 | where 1=1
8 | and a.TBCREATOR = '<>' --Schema
9 | and a.TBNAME = '<>' -- Table Name
10 | --and grantee like '%<>%' -- Package name
11 | and a.tbname = ac.stname
12 | --and (INSERTAUTH = 'Y' or UPDATEAUTH = 'Y')
13 | order by 1, 2, 3, 4
14 | FETCH FIRST 200 ROWS ONLY ;
15 |
--------------------------------------------------------------------------------
/JCL/basics/iebcopy.jcl:
--------------------------------------------------------------------------------
1 | //* JCL EXAMPLE IEBCOPY,PDS MEMBER TO PDS MEMBER(SELECTED) *//
2 | //* Modified: 26-12-2016 By : Phani *//
3 | //* *//
4 | //IEBCOP1 EXEC IEBCOPY
5 | //DDIN DD DSN=,DISP=SHR
6 | //DDOUT DD DSN=