IDENTIFICATION DIVISION .
PROGRAM-ID . SUNTAB1.
ENVIRONMENT DIVISION .
CONFIGURATION SECTION .
SOURCE-COMPUTER . xyz.
OBJECT-COMPUTER . xyz.
DATA DIVISION .
WORKING-STORAGE SECTION .
* EMBEDDED COBOL (file "SUNTAB1.PCO")
****************************************************************
*
* COMMENT SECTION
*
* DATE 1989/02/24 EMBEDDED COBOL LANGUAGE
* NIST SQL VALIDATION TEST SUITE V6.0
* DISCLAIMER:
* This program was written by employees of NIST to test SQL
* implementations for conformance to the SQL standards.
* NIST assumes no responsibility for any party's use of
* this program.
*
* SUNTAB1.PCO
* WRITTEN BY: SUN DAJUN
* TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE
*
* This routine initializes the contents of tables:
* STAFF_C, PROJ_M, and STAFF_M
* This routine may be run at any time to re-initialize tables.
*
****************************************************************
EXEC SQL BEGIN DECLARE SECTION END-EXEC
01 cnt1 PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 cnt2 PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 cnt3 PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 cnt4 PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 cnt5 PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 uid PIC X(18 ).
01 uidx PIC X(18 ).
EXEC SQL END DECLARE SECTION END-EXEC
01 SQLCODE PIC S9(9 ) COMP .
01 errcnt PIC S9(4 ) DISPLAY SIGN LEADING SEPARATE .
01 SQL-COD PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
* date_time declaration *
01 TO-DAY PIC 9 (6 ).
01 THE-TIME PIC 9 (8 ).
PROCEDURE DIVISION .
P0.
MOVE "SUN" TO uid
CALL "AUTHID" USING uid
MOVE 0 TO errcnt
DISPLAY
"SQL Test Suite, V6.0, Embedded COBOL, suntab1.pco"
DISPLAY " "
DISPLAY
"59-byte ID"
DISPLAY "TEd Version #"
DISPLAY " "
* date_time print *
ACCEPT TO-DAY FROM DATE
ACCEPT THE-TIME FROM TIME
DISPLAY "Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME
*SET NULL foreign key values for tables which
*reference each other or are self-referencing:
EXEC SQL UPDATE STAFF_M
SET PRI_WK = NULL END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE PROJ_M
SET MGR = NULL END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL DELETE FROM PROJ_M END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL DELETE FROM STAFF_M END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE STAFF_C
SET MGR = NULL END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL DELETE FROM STAFF_C END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_M
VALUES('E1' ,'Alice' ,12 ,'Deale' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_M
VALUES('E2' ,'Betty' ,10 ,'Vienna' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_M
VALUES('E3' ,'Carmen' ,13 ,'Vienna' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_M
VALUES('E5' ,'Don' ,12 ,'Deale' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_M
VALUES('E4' ,'Don' ,12 ,'Deale' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO PROJ_M
VALUES('P1' ,'MXSS' ,'Design' ,10000 ,'Deale' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO PROJ_M
VALUES('P2' ,'CALM' ,'Code' ,30000 ,'Vienna' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO PROJ_M
VALUES('P4' ,'SDP' ,'Design' ,20000 ,'Deale' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO PROJ_M
VALUES('P3' ,'SDP' ,'Test' ,30000 ,'Tample' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO PROJ_M
VALUES('P5' ,'IRM' ,'Test' ,10000 ,'Vienna' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO PROJ_M
VALUES('P6' ,'PAYR' ,'Design' ,50000 ,'Deale' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE STAFF_M
SET PRI_WK = 'P1'
WHERE EMPNUM = 'E1' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE STAFF_M
SET PRI_WK = 'P1'
WHERE EMPNUM = 'E2' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE STAFF_M
SET PRI_WK = 'P1'
WHERE EMPNUM = 'E3' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE STAFF_M
SET PRI_WK = 'P2'
WHERE EMPNUM = 'E4' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE STAFF_M
SET PRI_WK = 'P4'
WHERE EMPNUM = 'E5' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE PROJ_M
SET MGR = 'E2'
WHERE PNUM = 'P1' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE PROJ_M
SET MGR = 'E2'
WHERE PNUM = 'P2' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE PROJ_M
SET MGR = 'E3'
WHERE PNUM = 'P3' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE PROJ_M
SET MGR = 'E4'
WHERE PNUM = 'P4' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL UPDATE PROJ_M
SET MGR = 'E4'
WHERE PNUM = 'P5' END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_C
VALUES('E1' ,'Alice' ,12 ,'Deale' ,NULL ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_C
VALUES('E2' ,'Betty' ,10 ,'Vienna' ,'E1' ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_C
VALUES('E3' ,'Carmen' ,13 ,'Vienna' ,'E2' ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_C
VALUES('E4' ,'Don' ,12 ,'Deale' ,'E2' ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_C
VALUES('E5' ,'Don' ,12 ,'Deale' ,'E1' ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_C
VALUES('E6' ,'Tom' ,14 ,'Gettysburg' ,'E5' ) END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL INSERT INTO STAFF_C
VALUES('E7' ,'Kingdom' ,18 ,'Gettysburg' ,'E7' ) END-EXEC
MOVE SQLCODE TO SQL-COD
MOVE 0 TO cnt1
MOVE 0 TO cnt2
MOVE 0 TO cnt3
MOVE 0 TO cnt4
MOVE 0 TO cnt5
EXEC SQL SELECT COUNT (*) INTO :cnt1
FROM STAFF_M END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL SELECT COUNT (*) INTO :cnt4
FROM STAFF_M
WHERE PRI_WK IS NOT NULL END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL SELECT COUNT (*) INTO :cnt2
FROM PROJ_M END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL SELECT COUNT (*) INTO :cnt5
FROM PROJ_M
WHERE MGR IS NULL END-EXEC
MOVE SQLCODE TO SQL-COD
EXEC SQL SELECT COUNT (*) INTO :cnt3
FROM STAFF_C END-EXEC
MOVE SQLCODE TO SQL-COD
if (cnt1 = 5 AND cnt2 = 6 AND cnt3 = 7 AND cnt4
= 5 AND cnt5 = 1 ) then
DISPLAY "PROJ_M, STAFF_M, STAFF_C were created
- " successfully!"
else
DISPLAY "*******************************************"
DISPLAY "* PROJ_M, STAFF_M or STAFF_C ERROR !!! *"
DISPLAY "*******************************************"
END-IF
EXEC SQL COMMIT WORK END-EXEC
MOVE SQLCODE TO SQL-COD
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
STOP RUN .
* **** Procedures for PERFORM statements
Messung V0.5 in Prozent C=89 H=100 G=94
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-08)
¤
*© Formatika GbR, Deutschland