0% found this document useful (0 votes)
55 views12 pages

Code For Assessment

The document contains code snippets from sample programs that demonstrate different SQL operations like insert, delete, update in a DB2 database. These include cursor operations, inserting records into tables, deleting records based on conditions and bulk loading data into VSAM files.

Uploaded by

Udaya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views12 pages

Code For Assessment

The document contains code snippets from sample programs that demonstrate different SQL operations like insert, delete, update in a DB2 database. These include cursor operations, inserting records into tables, deleting records based on conditions and bulk loading data into VSAM files.

Uploaded by

Udaya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 12

//WPR057P JOB PR20312315,SAMPLE1,CLASS=A,TIME=10,NOTIFY=&SYSUID

//STEP1 EXEC PGM=IEBGENER,TIME=(0,3)


//SYSUT1 DD *
101 RAJ 40000 MUMBAI
102 SUJI 35000 CHENNAI
103 ANIL 50000 PUNE
/*
//SYSUT2 DD DSN=WPR057.SAMPLE.EMPSRC1,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(10,10,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STEP2 EXEC PGM=IEBGENER,TIME=(0,3)
//SYSUT1 DD *
201 RAM 55000 DELHI
202 RAHIM 30000 GURGOAN
203 KISAN 75000 GUJARAT
/*
//SYSUT2 DD DSN=WPR057.SAMPLE.EMPSRC2,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(5,10,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STEP3 EXEC PGM=IEBGENER,TIME=(0,3)
//SYSUT1 DD DSN=WPR057.SAMPLE.EMPSRC1,DISP=(OLD,CATLG,DELETE)
//SYSUT2 DD DSN=&&TEMP,
// DISP=(NEW,PASS,DELETE),
// SPACE=(TRK,(2,5,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STEP4 EXEC PGM=IEBGENER,TIME=(0,3)
//SYSUT1 DD DSN=WPR057.SAMPLE.EMPSRC2,DISP=(OLD,CATLG,DELETE)
//SYSUT2 DD DSN=WPR057.SAMPLE.EMPSRC1,DISP=(OLD,CATLG,DELETE)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STEP5 EXEC PGM=IEBGENER,TIME=(0,3)
//SYSUT1 DD DSN=&&TEMP,DISP=(OLD,CATLG,DELETE)
//SYSUT2 DD DSN=WPR057.SAMPLE.EMPSRC2,DISP=(OLD,CATLG,DELETE)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STEP6 EXEC PGM=IEBGENER,
// COND=((4,LT,STEP3),(4,LT,STEP4),(4,LT,STEP5)),TIME=(0,3)
//SYSUT1 DD *
SUCCESS
/*
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STEP7 EXEC PGM=IEBGENER,TIME=(0,3)
//SYSUT1 DD DSN=WPR057.SAMPLE.EMPSRC1,DISP=(OLD,CATLG,DELETE)
//SYSUT2 DD DSN=WPR057.SAMPLE.EMPGDG(+1),
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(5,2,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STEP8 EXEC PGM=SORT,TIME=(0,3)
//SORTIN DD DSN=WPR057.SAMPLE.EMPSRC2,DISP=(OLD,CATLG,DELETE)
//SORTOUT DD DSN=WPR057.SAMPLE.EMPGDG(+2),
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(2,2,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD *
SORT FIELDS=(14,5,CH,A)
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*

----------------------------GDG
BASE----------------------------------------------------------------

//WPR036A JOB WIP,WIP,CLASS=A,NOTIFY=&SYSUID


//STEP1 EXEC PGM=IDCAMS
//SYSIN DD *
DEFINE GDG(-
NAME(WPR036.WIPRO.PRODGDG1)-
LIMIT(5)-
EMPTY-
SCRATCH -
)
//*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
------------------------------------------------ SAMPLE
2---------------------------------------------------------------
//WPR065N JOB NA20312349,NOV24ASS,PRTY=3,TIME=(15,0),MSGCLASS=A,
// MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID
//S1 EXEC PGM=IEBGENER
//SYSUT1 DD *
101 PENCIL S001 0040 0050 L001
102 PEN S002 0030 0060 L002
103 ERASER S003 0020 0040 L002
/*
//SYSUT2 DD DSN=WPR065.WIPRO.PRODQTR1,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(5,5,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//S2 EXEC PGM=IEBGENER,TIME=(0,45)
//SYSUT1 DD *
111 BOOK S004 0035 0015 L001
112 PIN S005 0025 0025 L002
113 CHART S007 0055 0034 L001
/*
//SYSUT2 DD DSN=WPR065.WIPRO.PRODQTR2,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(5,5,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//S3 EXEC PGM=SORT,TIME=(0,45)
//SORTIN1 DD DSN=WPR065.WIPRO.PRODQTR1,DISP=(OLD,CATLG,DELETE)
//SORTIN2 DD DSN=WPR065.WIPRO.PRODQTR2,DISP=(OLD,CATLG,DELETE)
//SORTOUT DD DSN=WPR065.WIPRO.FINALRES,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(10,10,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD *
MERGE FIELDS=(1,3,CH,A)
/*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//S4 EXEC PGM=SORT,COND=(8,LT,S3),TIME=(0,45)
//SORTIN DD DSN=WPR065.WIPRO.FINALRES,DISP=(OLD,CATLG,DELETE)
//SORTOUT DD DSN=WPR065.WIPRO.PRODGDG(+1),
// DISP=(NEW,CATLG,CATLG),
// SPACE=(TRK,(5,2,0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSIN DD *
SORT FIELDS=(22,4,CH,A)
INCLUDE COND=(27,4,CH,EQ,C'L001')
/*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
------------------------------------------------------- VSAM ------- PRINT CH
IDS(/) -------------------------------------------------------------

//WPR036A JOB WIP,WIP,NOTIFY=&SYSUID,CLASS=A


//S1 EXEC PGM=IDCAMS
//SYSIN DD *
DEFINE CLUSTER( -
NAME(WPR036.DEC20.EMPKSDS) -
INDEXED -
KEYS(3,0) -
RECORDSIZE(80,80) -
CYL(1,1) -
)
/*
//SYSPRINT DD SYSOUT=*
----MAIN PGM---------

//WPR036A JOB WIP,WIP,NOTIFY=&SYSUID,CLASS=A


//S1 EXEC PGM=IDCAMS
//DD1 DD DSN=WPR036.DEC20.EMPSRC1,DISP=OLD
//DD2 DD DSN=WPR036.DEC20.EMPKSDS,DISP=OLD
//SYSIN DD *
REPRO INFILE(DD1) OUTFILE(DD2) REPLACE
/*
//SYSPRINT DD SYSOUT=*
------------------------------------------------------ DB2
---------------------------------------------------------------------------
DEL CUR=========================

IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE EMPTB
END-EXEC.
EXEC SQL
DECLARE CUR1 CURSOR
FOR
SELECT EMPLOYEE_NO,EMPLOYEE_NAME,SALARY
FROM EMPLOYEES_TB WHERE DEPARTMENT_ID=20
END-EXEC.
77 IND-SAL PIC S9(4) COMP.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM FETCH-PARA UNTIL SQLCODE = 100.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
EXEC SQL
OPEN CUR1
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
ELSE
DISPLAY 'FAILURE'
END-IF.
FETCH-PARA.
EXEC SQL
FETCH CUR1
INTO
:HV-EMPLOYEE-NO,
:HV-EMPLOYEE-NAME,
:HV-SALARY : IND-SAL
END-EXEC.
IF SQLCODE = 100
DISPLAY 'NO MORE RECORDS'
PERFORM CLOSE-PARA
STOP RUN
ELSE
DISPLAY HV-EMPLOYEE-NO , ' ' , HV-EMPLOYEE-NAME , ' ' ,
HV-SALARY
WPR048.DEC20.DB2PGM(DELCUR) - 01.01 Columns 00001 000
EXEC SQL
DELETE FROM EMPLOYEES_TB WHERE CURRENT OF CUR1
END-EXEC
IF SQLCODE = 0
DISPLAY 'DELETED DATA'
END-IF.
CLOSE-PARA.
EXEC SQL
CLOSE CUR1
END-EXEC.
========================== DEL PGM ================================================
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
01 HV-EMP-REC.
02 HV-ENO PIC S9(3) COMP.
02 HV-ENAME PIC X(6).
02 HV-PNUMBER PIC X(10).
02 HV-AGE PIC S9(2) COMP.
02 HV-HIREDATE PIC X(10).
02 HV-JPROFILE PIC X(10).
02 HV-DEPTID PIC S9(4) COMP.
02 HV-SALARY PIC S9(5)V9(2) COMP-3.
02 HV-COMMISSION PIC S9(4) COMP.
PROCEDURE DIVISION.
EXEC SQL
DELETE FROM EMPLOYEES_TB WHERE EMPLOYEE_NO=104
END-EXEC.
IF SQLCODE = 0
DISPLAY 'DELETE SUCCESS'
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.
STOP RUN.
========================== INS EMP=============================================
IDENTIFICATION DIVISION.
PROGRAM-ID. INSEMP.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE EMPTBLE
END-EXEC.
01 WS-EMP-REC.
02 WS-EID PIC 9(2).
02 WS-EFN PIC X(10).
02 WS-ELN PIC X(10).
02 WS-SAL PIC 9(15).
02 WS-DOJ PIC X(10).
02 WS-DEP PIC X(15).
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM ACC-PARA.
PERFORM MOVE-PARA.
PERFORM INS-PARA.
STOP RUN.
ACC-PARA.
ACCEPT WS-EMP-REC.
MOVE-PARA.
MOVE WS-EID TO HV-EMPLOYEE-ID.
MOVE LENGTH OF WS-EFN TO HV-FIRST-NAME-LEN.
MOVE WS-EFN TO HV-FIRST-NAME-TEXT.
MOVE LENGTH OF WS-ELN TO HV-LAST-NAME-LEN.
MOVE WS-ELN TO HV-LAST-NAME-TEXT.
MOVE WS-SAL TO HV-SALARY.
MOVE WS-DOJ TO HV-JOINING-DATE.
MOVE LENGTH OF WS-DEP TO HV-DEPARTMENT-LEN.
MOVE WS-DEP TO HV-DEPARTMENT-TEXT.
INS-PARA.
EXEC SQL
INSERT INTO EMPLOYEE VALUES(:HV-EMPLOYEE-ID,
:HV-FIRST-NAME,:HV-LAST-NAME,:HV-SALARY,:HV-JOINING-DATE
,:HV-DEPARTMENT)
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.

========================= INS PGM ===========================================


IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
01 HV-EMP-REC.
02 HV-ENO PIC S9(3) COMP.
02 HV-ENAME PIC X(6).
02 HV-PNUMBER PIC X(10).
02 HV-AGE PIC S9(4) COMP.
02 HV-HIREDATE PIC X(10).
02 HV-JPROFILE PIC X(10).
02 HV-DEPTID PIC S9(4) COMP.
02 HV-SALARY PIC S9(5)V9(2) COMP-3.
02 HV-COMMISSION PIC S9(4) COMP.
01 WS-EMP-REC.
02 WS-ENO PIC X(3).
02 WS-ENAME PIC X(6).
02 WS-SALARY PIC 9(5)V9(2).
PROCEDURE DIVISION.
WPR048.DEC20.DB2PGM(INSPGM) - 01.03 Columns 00001 00072
MAIN-PARA.
PERFORM ACC-PARA.
PERFORM MOVE-PARA.
PERFORM INS-PARA.
STOP RUN.
ACC-PARA.
ACCEPT WS-EMP-REC.
MOVE-PARA.
MOVE WS-ENO TO HV-ENO.
MOVE WS-ENAME TO HV-ENAME.
MOVE WS-SALARY TO HV-SALARY.
INS-PARA.
EXEC SQL
INSERT INTO EMPLOYEES_TB(EMPLOYEE_NO,EMPLOYEE_NAME,
SALARY) VALUES(:HV-ENO,:HV-ENAME,:HV-SALARY)
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
DISPLAY HV-ENO , HV-ENAME , HV-SALARY
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.
=========================== NULL INS=============================================
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE EMPTB
END-EXEC.
01 WS-EMP-REC.
02 WS-ENO PIC X(3).
02 WS-ENAME PIC X(12).
02 WS-DNO PIC 9(4).
77 IND-DNO PIC S9(4) COMP.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM ACC-PARA.
PERFORM MOVE-PARA.
PERFORM INS-PARA.
STOP RUN.
ACC-PARA.
ACCEPT WS-EMP-REC.
MOVE-PARA.
MOVE WS-ENO TO HV-EMPLOYEE-NO
MOVE WS-ENAME TO HV-EMPLOYEE-NAME
MOVE WS-DNO TO HV-DEPARTMENT-ID
IF WS-DNO = ZEROS
MOVE -1 TO IND-DNO
ELSE
MOVE WS-DNO TO HV-DEPARTMENT-ID
END-IF.
INS-PARA.
EXEC SQL
INSERT INTO EMPLOYEES_TB(EMPLOYEE_NO,EMPLOYEE_NAME,
DEPARTMENT_ID) VALUES(:HV-EMPLOYEE-NO,:HV-EMPLOYEE-NAME,
:HV-DEPARTMENT-ID:IND-DNO)
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
DISPLAY HV-EMPLOYEE-NO , HV-EMPLOYEE-NAME ,
HV-DEPARTMENT-ID
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.
========================NULL SEL===============================================
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM2.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE EMPTB
END-EXEC.
77 IND-COMM PIC S9(2) COMP.
PROCEDURE DIVISION.
EXEC SQL
SELECT EMPLOYEE_NO,COMMISSION
INTO
:HV-EMPLOYEE-NO,
:HV-COMMISSION
FROM EMPLOYEES_TB
WHERE EMPLOYEE_NO=101
END-EXEC.
IF IND-COMM < 0
MOVE 99 TO HV-COMMISSION
DISPLAY HV-EMPLOYEE-NO,HV-COMMISSION
ELSE
DISPLAY HV-EMPLOYEE-NO,HV-COMMISSION
END-IF.
STOP RUN.
========================== SEL CUR=============================================
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE EMPTB
END-EXEC.
EXEC SQL
DECLARE CUR1 CURSOR
FOR
SELECT DEPARTMENT_ID FROM EMPLOYEES_TB
END-EXEC.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM FETCH-PARA UNTIL SQLCODE=100.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
EXEC SQL
OPEN CUR1
END-EXEC.
IF SQLCODE=0
DISPLAY 'OPEN SUCCESS'
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.
FETCH-PARA.
EXEC SQL
FETCH CUR1
INTO
:HV-DEPARTMENT-ID
END-EXEC.
IF SQLCODE = 100
PERFORM CLOSE-PARA
STOP RUN
ELSE
DISPLAY HV-DEPARTMENT-ID
END-IF.
CLOSE-PARA.
EXEC SQL
CLOSE CUR1
END-EXEC.
========================== SEL PGM========================
your edit profile using the command RECOVER
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
01 HV-EMP-REC.
02 HV-ENO PIC S9(4) COMP.
02 HV-ENAME PIC X(10).
02 HV-PNUMBER PIC X(10).
02 HV-AGE PIC S9(4) COMP.
02 HV-HIREDATE PIC X(10).
02 HV-JPROFILE PIC X(10).
02 HV-DEPTID PIC S9(4) COMP.
02 HV-SALARY PIC S9(5)V9(2) COMP-3.
02 HV-COMMISSION PIC S9(4) COMP.
PROCEDURE DIVISION.
EXEC SQL
SELECT EMPLOYEE_NO,SALARY
INTO
:HV-ENO,
WPR048.DEC20.DB2PGM(SELPGM) - 01.09
:HV-SALARY
FROM EMPLOYEES_TB
WHERE EMPLOYEE_NO=103
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
DISPLAY HV-ENO , HV-SALARY
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.
STOP RUN.

=================================SEL PGM2=====================================
your edit profile using the command RECOVERY O
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM2.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE EMPTB
END-EXEC.
PROCEDURE DIVISION.
EXEC SQL
SELECT EMPLOYEE_NO,SALARY
INTO
:HV-EMPLOYEE-NO,
:HV-SALARY
FROM EMPLOYEES_TB
WHERE EMPLOYEE_NO=101
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
DISPLAY HV-EMPLOYEE-NO,HV-SALARY
WPR048.DEC20.DB2PGM(SELPGM2) - 01.09
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.
STOP RUN.
================================= UPD
PGM==============================================
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
01 HV-EMP-REC.
02 HV-ENO PIC S9(3) COMP.
02 HV-ENAME PIC X(6).
02 HV-PNUMBER PIC X(10).
02 HV-AGE PIC S9(2) COMP.
02 HV-HIREDATE PIC X(10).
02 HV-JPROFILE PIC X(10).
02 HV-DEPTID PIC S9(4) COMP.
02 HV-SALARY PIC S9(5)V9(2) COMP-3.
02 HV-COMMISSION PIC S9(4) COMP.
PROCEDURE DIVISION.
EXEC SQL
UPDATE EMPLOYEES_TB SET AGE=39,SALARY=6000055
WHERE EMPLOYEE_NO=103
END-EXEC.
IF SQLCODE = 0
DISPLAY 'UPDATE SUCCESS'
ELSE
DISPLAY 'FAILURE' SQLCODE
END-IF.
STOP RUN.
========================================= UPD
CUR========================================
your edit profile using the command RECOVERY ON.
IDENTIFICATION DIVISION.
PROGRAM-ID. SELPGM.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE EMPTB
END-EXEC.
EXEC SQL
DECLARE CUR1 CURSOR
FOR
SELECT EMPLOYEE_NO,EMPLOYEE_NAME,SALARY
FROM EMPLOYEES_TB WHERE DEPARTMENT_ID=10
FOR UPDATE OF SALARY
END-EXEC.
77 IND-SAL PIC S9(4) COMP.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM OPEN-PARA.
PERFORM FETCH-PARA UNTIL SQLCODE = 100.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
EXEC SQL
OPEN CUR1
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
ELSE
DISPLAY 'FAILURE'
END-IF.
FETCH-PARA.
EXEC SQL
FETCH CUR1
INTO
:HV-EMPLOYEE-NO,
:HV-EMPLOYEE-NAME,
:HV-SALARY : IND-SAL
END-EXEC.
IF SQLCODE = 100
DISPLAY 'NO MORE RECORDS'
PERFORM CLOSE-PARA
STOP RUN
ELSE
DISPLAY HV-EMPLOYEE-NO , ' ' , HV-EMPLOYEE-NAME , ' ' ,
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
EXEC SQL
OPEN CUR1
END-EXEC.
IF SQLCODE = 0
DISPLAY 'SUCCESS'
ELSE
DISPLAY 'FAILURE'
END-IF.
FETCH-PARA.
EXEC SQL
FETCH CUR1
INTO
:HV-EMPLOYEE-NO,
:HV-EMPLOYEE-NAME,
:HV-SALARY : IND-SAL
END-EXEC.
IF SQLCODE = 100
DISPLAY 'NO MORE RECORDS'
PERFORM CLOSE-PARA
STOP RUN
ELSE
DISPLAY HV-EMPLOYEE-NO , ' ' , HV-EMPLOYEE-NAME , ' ' ,
HV-SALARY
EXEC SQL
UPDATE EMPLOYEES_TB SET SALARY = SALARY + 100
WHERE CURRENT OF CUR1
END-EXEC
IF SQLCODE = 0
DISPLAY 'UPDATED DATA'
END-IF.
CLOSE-PARA.
EXEC SQL
CLOSE CUR1
END-EXEC.
================================================================================

You might also like