17 seconds with Claude.
IDENTIFICATION DIVISION.
PROGRAM-ID. CUSTDATA.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-VARIABLES.
05 WS-SQLCODE PIC S9(9) COMP.
05 WS-ERROR-MESSAGE PIC X(50).
01 WS-CUSTOMER-RECORD.
05 WS-CUSTOMER-ID PIC 9(5).
05 WS-CUSTOMER-NAME PIC X(30).
05 WS-CUSTOMER-ADDRESS PIC X(50).
05 WS-CUSTOMER-PHONE PIC X(15).
EXEC SQL
INCLUDE SQLCA
END-EXEC.
PROCEDURE DIVISION.
000-MAIN-PARA.
PERFORM 100-CONNECT-DB
PERFORM 200-CREATE-TABLE
PERFORM 300-INSERT-RECORD
PERFORM 400-READ-RECORDS
PERFORM 500-DISCONNECT-DB
STOP RUN.
100-CONNECT-DB.
EXEC SQL
CONNECT TO CUSTDB
END-EXEC
PERFORM 900-CHECK-SQL-STATUS.
200-CREATE-TABLE.
EXEC SQL
CREATE TABLE CUSTOMERS
(CUST_ID INTEGER NOT NULL PRIMARY KEY,
CUST_NAME VARCHAR(30),
CUST_ADDR VARCHAR(50),
CUST_PHONE VARCHAR(15))
END-EXEC
PERFORM 900-CHECK-SQL-STATUS.
300-INSERT-RECORD.
MOVE 10001 TO WS-CUSTOMER-ID
MOVE 'JOHN DOE' TO WS-CUSTOMER-NAME
MOVE '123 MAIN ST' TO WS-CUSTOMER-ADDRESS
MOVE '555-0123' TO WS-CUSTOMER-PHONE
EXEC SQL
INSERT INTO CUSTOMERS VALUES
(:WS-CUSTOMER-ID,
:WS-CUSTOMER-NAME,
:WS-CUSTOMER-ADDRESS,
:WS-CUSTOMER-PHONE)
END-EXEC
PERFORM 900-CHECK-SQL-STATUS.
400-READ-RECORDS.
EXEC SQL
DECLARE C1 CURSOR FOR
SELECT * FROM CUSTOMERS
END-EXEC
EXEC SQL
OPEN C1
END-EXEC
PERFORM UNTIL SQLCODE = 100
EXEC SQL
FETCH C1 INTO
:WS-CUSTOMER-ID,
:WS-CUSTOMER-NAME,
:WS-CUSTOMER-ADDRESS,
:WS-CUSTOMER-PHONE
END-EXEC
IF SQLCODE = 0
DISPLAY 'Customer ID: ' WS-CUSTOMER-ID
DISPLAY 'Name: ' WS-CUSTOMER-NAME
DISPLAY 'Address: ' WS-CUSTOMER-ADDRESS
DISPLAY 'Phone: ' WS-CUSTOMER-PHONE
END-IF
END-PERFORM
EXEC SQL
CLOSE C1
END-EXEC.
500-DISCONNECT-DB.
EXEC SQL
DISCONNECT CUSTDB
END-EXEC.
900-CHECK-SQL-STATUS.
IF SQLCODE NOT = 0
MOVE 'Database error occurred' TO WS-ERROR-MESSAGE
DISPLAY WS-ERROR-MESSAGE
DISPLAY 'SQLCODE: ' SQLCODE
PERFORM 500-DISCONNECT-DB
STOP RUN
END-IF.