Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to JCL Basics
JCL Basics | Advanced | COBOL

KSDS Random Read

Problem Description

Read VSAM KSDS randomly by key.

Expected Output

Direct access to KSDS record

Hints

ACCESS MODE RANDOM, move value to key, then READ.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. VSAMRAND. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT VSAM-FILE ASSIGN TO VSAMFILE ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS VS-KEY FILE STATUS IS WS-FILE-STATUS. DATA DIVISION. FILE SECTION. FD VSAM-FILE. 01 VS-RECORD. 05 VS-KEY PIC X(10). 05 VS-NAME PIC X(30). 05 VS-BALANCE PIC S9(7)V99. WORKING-STORAGE SECTION. 01 WS-FILE-STATUS PIC XX. 01 WS-SEARCH-KEY PIC X(10). PROCEDURE DIVISION. OPEN INPUT VSAM-FILE. DISPLAY "ENTER ACCOUNT KEY: ". ACCEPT WS-SEARCH-KEY. MOVE WS-SEARCH-KEY TO VS-KEY. READ VSAM-FILE INVALID KEY DISPLAY "RECORD NOT FOUND" NOT INVALID KEY DISPLAY "NAME: " VS-NAME DISPLAY "BALANCE: " VS-BALANCE END-READ. CLOSE VSAM-FILE. STOP RUN.

Explanation:

ACCESS MODE RANDOM for direct reads. INVALID KEY handles not-found condition.