PIC . PROGRAM-ID ENVIRONMENT1 ( LEADING. CONFIGURATIONSECTION. SOURCE-COMPUTER
. DATAerrcnt LEADING.
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
DIVISION * Standard COBOL (file "DML019.SCO") calling SQL * procedures in file "DML019.MCO"
**************************************************************** * * COMMENT SECTION * * DATE 1987/08/21 STANDARD 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. * * DML019.SCO * VALUES('0074','pass','MCO') END-EXEC * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * THIS ROUTINE TESTS THE GROUP BY CLAUSE IN THE SQL LANGUAGE * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL
* * SECTION 5.22 <group by clause> * ****************************************************************
* EXEC SQL DECLARE WORKS1 CURSOR FOR * SELECT PNUM, SUM(HOURS) * FROM WORKS * GROUP BY PNUM END-EXEC * EXEC SQL OPEN WORKS1; CALL"SUB1"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE 0 TO i MOVE 1 TO ii PERFORM P50 UNTIL ii > 19 * EXEC SQL CLOSE WORKS1; CALL"SUB2"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY" "
DISPLAY" i should be 6, i=", i if (i = 6) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0074','pass','MCO') END-EXEC CALL"SUB3"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml019.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0074','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB4"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF
DISPLAY" *** SELECT * " DISPLAY" *** FROM WORKS " DISPLAY" *** GROUP BY EMPNUM,HOURS "
* EXEC SQL DECLARE WORKS4 CURSOR FOR * SELECT EMPNUM,HOURS * FROM WORKS * GROUP BY EMPNUM,HOURS END-EXEC
* EXEC SQL OPEN WORKS4; CALL"SUB11"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY" EMPNUM HOURS " END-IF MOVE 1 TO ii PERFORM P48 UNTIL ii > 19 * EXEC SQL CLOSE WORKS4; CALL"SUB12"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY" "
DISPLAY" i should be 10, i=", i if (i = 10) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0076','pass','MCO') END-EXEC CALL"SUB13"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml019.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0076','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB14"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF
* This query satisfies 5.25 SR 7), becuase table WORKS only * has three columns which are all in GROUP BY cluase. * (see 5.25 SR 4). about the <select list> "*".)
* EXEC SQL DECLARE WORKS5 CURSOR FOR * SELECT * * FROM WORKS * GROUP BY PNUM,EMPNUM,HOURS END-EXEC * EXEC SQL OPEN WORKS5; CALL"SUB16"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY" EMPNUM PNUM HOURS " END-IF MOVE 1 TO ii PERFORM P47 UNTIL ii > 19 * EXEC SQL CLOSE WORKS5; CALL"SUB17"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY" "
DISPLAY" i should be 12, i=", i if (i = 12) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0077','pass','MCO') END-EXEC CALL"SUB18"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml019.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0077','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB19"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF
* EXEC SQL DECLARE WORKS10 CURSOR FOR * SELECT PNUM,EMPNUM * FROM WORKS * GROUP BY EMPNUM,PNUM,HOURS END-EXEC * EXEC SQL OPEN WORKS10; CALL"SUB21"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY" PNUM EMPNUM " END-IF MOVE 1 TO ii PERFORM P46 UNTIL ii > 19 * EXEC SQL CLOSE WORKS10; CALL"SUB22"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY" " DISPLAY" i shoud be 12, i=", i if (i = 12) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0078','pass','MCO') END-EXEC CALL"SUB23"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml019.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0078','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB24"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF
DISPLAY" *** SELECT SUM(GRADE) " DISPLAY" *** FROM STAFF " DISPLAY" *** WHERE CITY IS NULL " DISPLAY" *** GROUP BY CITY "
* EXEC SQL DECLARE WORKS11 CURSOR FOR * SELECT SUM(GRADE) * FROM STAFF * WHERE CITY IS NULL * GROUP BY CITY END-EXEC * EXEC SQL OPEN WORKS11; CALL"SUB28"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE 0 TO i * EXEC SQL FETCH WORKS11 INTO :i; CALL"SUB29"USING SQLCODE i MOVE SQLCODE TO SQL-COD * EXEC SQL CLOSE WORKS11; CALL"SUB30"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL DELETE FROM STAFF WHERE CITY IS NULL; CALL"SUB31"USING SQLCODE MOVE SQLCODE TO SQL-COD
DISPLAY" " DISPLAY" i shoud be 90, i=", i if (i = 90) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0079','pass','MCO') END-EXEC CALL"SUB32"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml019.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0079','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB33"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.