COBOL Programming Part 2 - Advanced Level

This course is the essential second part of the definitive introduction to COBOL programming that starts with the course COBOL Programming Part 1 - Foundation Level. Introducing programmers with some experience to the more advanced features of COBOL, this course completes the lessons on how to write new programs and how to maintain existing ones.
As attendees will be writing testing and debugging actual programs, the use of COBOL logic will be reinforced during this course. The course is taught using a combination of formal classroom sessions and practical exercises, and includes realistic case studies.
When run exclusively for one organisation the case studies can be customised to reflect the client's particular environment and workload.

As well as public presentations, this course is available for one-company presentations, live over the Internet, via RSM's Virtual Classroom Environment service.

Virtual Classroom Environment dates - click to book!

UK Start Times

15 April 2024 15 July 2024

What is a 'Virtual Classroom Environment'?


What do I need?

  • webcam
  • headphones with microphone
  • sufficient bandwidth, at least 1.5 Mb/s in each direction.

What you will learn

On successful completion of this course you will be able to:

  • code and call COBOL subprograms
  • define and access tables using either subscripts or indexes
  • use the COBOL internal sort facility
  • define and use VSAM files.

Who Should Attend

Trainee or junior programmers who have already been writing or maintaining COBOL programs.


The ability to use TSO/ISPF and an understanding of JCL is expected, along with prior attendance on the course COBOL Programming Part 1 - Foundation Level or equivalent experience.


5 days

Fee (per attendee)

£2300 (ex VAT)


This includes free online 24/7 access to course notes.


Hard copy course notes are available on request from

at £50.00 plus carriage per set.

Course Code



COBOL Revision

Attendees will be required to write a COBOL program in order to demonstrate that they have a sufficient level of understanding of the language. This will also enable the instructor to identify any areas that require attention.


SPECIAL-NAMES paragraph; CURRENCY SIGN; DECIMAL-POINT; Formatting example; CLASS conditions.

Array Processing

Arrays and tables; Defining an array - OCCURS clause; Redefining fields - using REDEFINES; Redefining fields - using level 66 & RENAMES; Indexed arrays; Setting indexes - SET; Setting indexes - PERFORM...VARYING; Searching arrays - SEARCH; SEARCH ALL; Variable arrays; SUM with arrays.

Multi-dimensional Arrays

Two-dimensional arrays; Accessing two-dimensional arrays; PERFORM ... VARYING and two-dimensional arrays; Processing two-dimensional arrays using AFTER; Multi- dimensional arrays; PERFORM ... VARYING and three-dimensional arrays; Processing multi-dimensional arrays with AFTER; Variable-length arrays.


Introduction to subroutines; CALL statement; LINKAGE SECTION; Returning to the calling program; ENTRY statement; CANCEL statement; INITIAL clause; USING options; Passing a file name; Exception handling.



STRING, UNSTRING and String Functions

STRING; STRING examples; UNSTRING; UNSTRING examples; Reference modification; UPPER / LOWER-CASE function; NUMVAL and NUMVAL-C.

Variable Length Records

Fixed length records; Variable-length records; Variable-length fields; Other RECORDING MODE options.

Virtual Storage Access Method (VSAM)

Virtual Storage Access Method (VSAM); Entry Sequenced Data Set; Key Sequenced Data Set (KSDS); Relative Record Data Set (RRDS); Linear Data Set (LDS); Access Method Services (AMS); IDCAMS utility - DEFINE; IDCAMS utility - REPRO; IDCAMS utility - PRINT; IDCAMS utility - DELETE.

Using VSAM with COBOL

Identifying type of VSAM file and access method; FILE STATUS clause; VSAM status codes; OPEN / CLOSE for VSAM files; Accessing VSAM datasets sequentially; Accessing VSAM files randomly; INVALID KEY / NOT INVALID KEY clause; Dynamically accessing VSAM files; START statement; WRITE statement (ESDS); WRITE statement (KSDS / RRDS); DELETE statement (KSDS / RRDS); REWRITE statement.

VSAM Alternate Indexes

Alternate indexes; Defining an alternate index; Defining a path; Building the index using BLDINDEX; Identifying associations (LISTCAT); Sequential processing via alternate indexes; Dynamic processing using alternate index.

Using SORT and MERGE

SORT and MERGE processing; SORT / MERGE syntax; SORT examples; MERGE example; MERGE with output procedures.

What the students say

Thoroughly enjoyable experience. Having an instructor with such a level of interest, experience and knowledge made the training much easier and enjoyable.

Royal Bank of Scotland Group

© RSM Technology 2022