Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
🗃 DB2

Introduction to DB2

Beginner 🕑 20 min read 👁 0 views

What is DB2?

DB2 is IBM's relational database management system (RDBMS) for mainframes. It stores data in tables and uses SQL (Structured Query Language) for data manipulation.

DB2 Objects

  • Database - Collection of related objects
  • Tablespace - Physical storage for tables
  • Table - Rows and columns of data
  • Index - Structure for fast data access
  • View - Virtual table based on query
  • Stogroup - Collection of DASD volumes

DB2 Data Types

TypeDescription
INTEGERWhole numbers
SMALLINTSmall integers
DECIMAL(p,s)Packed decimal
CHAR(n)Fixed-length string
VARCHAR(n)Variable-length string
DATEDate value
TIMETime value
TIMESTAMPDate and time

COBOL-DB2 Interface

DB2 programs use embedded SQL within COBOL. Key components:

  • EXEC SQL...END-EXEC - SQL statement delimiters
  • SQLCA - SQL Communication Area
  • Host Variables - COBOL variables in SQL
  • DCLGEN - Declaration generator

Code Example

       * WORKING-STORAGE FOR DB2
       WORKING-STORAGE SECTION.

       * INCLUDE SQLCA FOR ERROR HANDLING
           EXEC SQL
               INCLUDE SQLCA
           END-EXEC.

       * INCLUDE DCLGEN FOR TABLE
           EXEC SQL
               INCLUDE EMPLOYEE
           END-EXEC.

       * HOST VARIABLES
       01 WS-EMP-ID      PIC 9(6).
       01 WS-EMP-NAME    PIC X(30).
       01 WS-EMP-SALARY  PIC S9(7)V99 COMP-3.
       01 WS-NULL-IND    PIC S9(4) COMP.

       PROCEDURE DIVISION.

       * SIMPLE SELECT
           EXEC SQL
               SELECT EMP_NAME, SALARY
               INTO :WS-EMP-NAME, :WS-EMP-SALARY
               FROM EMPLOYEE
               WHERE EMP_ID = :WS-EMP-ID
           END-EXEC.

       * CHECK SQLCODE
           IF SQLCODE = 0
               DISPLAY "EMPLOYEE FOUND"
           ELSE IF SQLCODE = 100
               DISPLAY "NO DATA FOUND"
           ELSE
               DISPLAY "SQL ERROR: " SQLCODE
           END-IF.