MainframeMaster

COBOL Tutorial

COBOL VALIDATE - Quick Reference

Progress0 of 0 lessons

Overview

VALIDATE is a modern COBOL statement that provides declarative data validation. It allows you to validate data against defined rules and constraints at the data definition level, making validation more efficient and less error-prone than manual procedural validation.

Key Features

  • Declarative validation - Define rules at data description level
  • Exception handling - Raise exceptions for validation failures
  • Multiple validation types - Range, format, and custom rules
  • Performance optimized - Efficient validation processing

Syntax and Usage

VALIDATE statement syntax and usage patterns for different validation scenarios.

Basic VALIDATE Statement

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
IDENTIFICATION DIVISION. PROGRAM-ID. VALIDATE-EXAMPLE. DATA DIVISION. WORKING-STORAGE SECTION. 01 CUSTOMER-AGE PIC 9(3) VALUE 25. 01 CUSTOMER-NAME PIC X(30) VALUE "JOHN DOE". 01 CUSTOMER-EMAIL PIC X(50) VALUE "john@example.com". PROCEDURE DIVISION. VALIDATE CUSTOMER-AGE VALIDATE CUSTOMER-NAME VALIDATE CUSTOMER-EMAIL STOP RUN.

Basic validation of data items. Validation rules are defined in the data description.

VALIDATE with Exception Handling

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
IDENTIFICATION DIVISION. PROGRAM-ID. VALIDATE-EXCEPTION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INVALID-AGE PIC 9(3) VALUE 999. PROCEDURE DIVISION. MAIN-LOGIC. VALIDATE INVALID-AGE ON EXCEPTION DISPLAY "Age validation failed" PERFORM ERROR-HANDLING NOT ON EXCEPTION DISPLAY "Age is valid" END-VALIDATE STOP RUN. ERROR-HANDLING. DISPLAY "Handling validation error" EXIT.

Using exception handling to catch and process validation failures.

VALIDATE with Custom Rules

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
IDENTIFICATION DIVISION. PROGRAM-ID. VALIDATE-CUSTOM. DATA DIVISION. WORKING-STORAGE SECTION. 01 CUSTOMER-RECORD. 05 CUSTOMER-ID PIC 9(6) VALUE 123456. 05 CUSTOMER-STATUS PIC X(1) VALUE "A". 05 CUSTOMER-BALANCE PIC 9(8)V99 VALUE 1000.50. PROCEDURE DIVISION. VALIDATE CUSTOMER-RECORD ON EXCEPTION DISPLAY "Customer record validation failed" NOT ON EXCEPTION DISPLAY "Customer record is valid" END-VALIDATE STOP RUN.

Validating entire record structures with custom validation rules.

Validation Types

PICTURE Validation

Validates data against PICTURE clause specifications.

cobol
1
2
01 NUMERIC-FIELD PIC 9(3) VALUE 123. VALIDATE NUMERIC-FIELD

Range Validation

Validates data within specified ranges.

cobol
1
2
01 AGE-FIELD PIC 9(3) VALUE 25. VALIDATE AGE-FIELD RANGE 0 THRU 120

Format Validation

Validates data format and structure.

cobol
1
2
01 EMAIL-FIELD PIC X(50) VALUE "test@email.com". VALIDATE EMAIL-FIELD FORMAT EMAIL

Custom Validation

User-defined validation rules.

cobol
1
2
01 CUSTOM-FIELD PIC X(10) VALUE "ABC123". VALIDATE CUSTOM-FIELD USING CUSTOM-RULE

Best Practices

  • Define validation rules - Clearly specify validation criteria in data descriptions
  • Handle exceptions - Always provide exception handling for validation failures
  • Validate early - Validate data as soon as it is received or modified
  • Use meaningful messages - Provide clear error messages for validation failures
  • Test thoroughly - Test validation with various data scenarios

VALIDATE Quick Reference

Validation TypeSyntaxUse Case
BasicVALIDATE data-itemSimple data validation
With ExceptionVALIDATE data-item ON EXCEPTIONError handling
RangeVALIDATE data-item RANGE min THRU maxNumeric range validation
FormatVALIDATE data-item FORMAT format-typeFormat validation

Test Your Knowledge

1. What is the primary purpose of VALIDATE in COBOL?

  • To compile the program
  • To validate data against defined rules and constraints
  • To terminate program execution
  • To allocate memory

2. Which COBOL standard introduced the VALIDATE statement?

  • COBOL-68
  • COBOL-74
  • COBOL-85
  • COBOL 2002/2014

3. What happens when VALIDATE fails?

  • The program terminates immediately
  • An exception is raised that can be handled
  • The data is automatically corrected
  • Nothing - validation is just informational

4. Which validation rule can VALIDATE NOT check?

  • PICTURE clause compliance
  • Range validation
  • Format validation
  • Database connectivity

5. How do you handle validation errors in COBOL?

  • Use EXCEPTION handling with VALIDATE
  • Check return codes after VALIDATE
  • Both A and B depending on implementation
  • Validation errors cannot be handled

Frequently Asked Questions