* Standard COBOL (file "DML076.SCO") calling SQL * procedures in file "DML076.MCO".
* STANDARD COBOL (file "DML076.SCO")
********************************************************* * * COMMENT SECTION * * DATE 1991/06/18 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. * * DML076.SCO * WRITTEN BY: YOLANDA HERD * * THIS ROUTINE TESTS NULLS AND CURSORS * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * SECTION 4.2 * DATA TYPES, DEFINITION OF NULL * SECTION 8.10, GR 8 * *********************************************************
* date_time declaration * 9(6)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 01 THE-TIME PIC9(8)).
PROCEDUREDIVISION.
P0. MOVE"HU MOVE ""X TO CALL"AUTHID"USINGMOVETOindic1 MOVE"not logged in, not"TO uidx CALL"AUTHCK"USINGSQLCODE uidx MOVESQLCODETO SQL-COD if (uid NOT = uidx) then DISPLAY"ERROR: User " uid " expected." DISPLAY User "uidx " connected.java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 DISPLAY" " STOPRUN END-IF
* EXEC SQL DECLARE Y CURSOR * FOR SELECT CITY * FROM PROJ * WHERE PNAME = :NME1:indic2 OR BUDGET < :count1:indic1 * END-EXEC
* EXEC SQL OPEN Y; CALL"SUB2 * EXEC SQL SELECT CHARTEST INTO :CHARTP:indic1 MOVESQLCODETOCALL"SUB21"USINGSQLCODE indic1
MOVE1TO i PERFORM P49 UNTIL i > 6
DISPLAY" The correct answers are:" DISPLAY"count3=4 and count2 1 " DISPLAY" " DISPLAY" Your answers are DISPLAY" =" count3 count2 =",count2 java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
if ((java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 19 * EXEC SQL INSERT INTO TESTREPORT * VALUES('0410','pass','MCO'); CALL"SUB3"USINGSQLCODEMOVETOSQL-COD * EXEC SQL SELECT SMALLTEST INTO :SMLTP:indic4 DISPLAY" *** pass *** " else * EXEC SQL INSERT INTO TESTREPORT * VALUES('0410','fail','MCO'); ADD1TO errcnt CALL"SUB4"USINGSQLCODE MOVESQLCODETO java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 DISPLAY" dml076.sco *** fail *** * WHERE DOUBLETEST IS NULL; END-IF
DISPLAY "==========java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* EXEC SQL SELECT SUM(GRADE) INTO :GRDE * FROM STAFF * WHERE CITY = :CITY1; CALL"SUB7"USINGSQLCODE GRDE CITY1 SQLCODE
* EXEC SQL SELECT EMPNAME INTO :NME1 * FROM STAFF * WHERE EMPNAME > 'Ed'; CALLjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVESQLCODETO SQL-COD
********************** END TEST0435 *********************
********************** BEGIN TEST0436 ********************* *This program tests the NULL values for various *SQL Data Types
DISPLAY"===========================" DISPLAY" NULL values for various SQL Data Types
- " " DISPLAY" reference X3.135-1989 section 4.2, 8.10 GR 8
-"java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 24
- " -------------java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* EXEC SQL INSERT INTO BB VALUES(NULL); CALL"SUB13" java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 29 MOVESQLCODETO java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 29 * EXEC SQL INSERT INTO EE VALUES(NULL); CALL"SUB14"USINGSQLCODE MOVE0TO count4 * EXEC SQL INSERT INTO GG VALUES(NULL); CALL"SUB15 MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO HH VALUES(NULL); "UB16"USING MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO II VALUES(NULL); CALL"SUB17"USINGSQLCODE MOVE * EXEC SQL INSERT INTO BB VALUES(:CHARTP :indic1); * EXEC SQL INSERT INTO JJ VALUES(NULL); CALL"SUB18"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO MM VALUES(NULL); * EXEC SQL INSERT INTO SS VALUES(:DECTP :indic2); MOVESQLCODETO SQL-COD CALL"UB37"SQLCODE DECTP indic2 * EXEC SQL INSERT INTO SS VALUES(NULL); CALL"SUB20"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL SELECT CHARTEST INTO :CHARTP:indic1 * FROM BB; CALL"SUB21"USINGSQLCODE CHARTP indic1 MOVESQLCODETO SQL-COD
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
* EXEC SQL SELECT INTTEST INTO :INTTP:indic2 * FROM EE; CALL"SUB22"USINGSQLCODE INTTP indic2 MOVESQLCODETO SQL-COD MOVE indic2 TO DISP2 MOVE45TO REALTP-SUB
* EXEC SQL SELECT COUNT(*) INTO :count1 * FROM GG * WHERE REALTEST IS NULL; CALL"UB24 USING SQLCODE count1 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT SMALLTEST INTO :SMLTP:indic4 * FROM HH; CALL"SUB25"USINGSQLCODE"SUB40"USINGSQLCODE DECTPindic5 MOVE * EXEC SQL INSERT INTO GG VALUES(:REALTP-SUB :indic6); MOVE indic4 TO DISP4
* EXEC SQL SELECT COUNT(*) INTO :count2 * FROM II * WHERE DOUBLETEST IS NULL; CALL"SUB27"USINGSQLCODE count2 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count3 * FROM JJ * WHERE FLOATTEST IS NULL; CALL" * EXEC SQL INSERT INTO PP SELECT NUMTEST FROM SS; MOVESQLCODETO SQL-COD
* EXEC SQL SELECT NUMTEST INTO :NUMTP:indic7 * FROM MM; CALL"SUB30"USINGSQLCODE NUMTP indic7 MOVESQLCODETO SQL-COD MOVE indic7 TO DISP7
* EXEC SQL SELECT NUMTEST INTO :DECTP:indic8 * FROM SS; CALL"SUB31"USINGMOVETOSQL-COD MOVESQLCODETO SQL-COD MOVE indic8 TO DISP8
* EXEC SQL ROLLBACK WORK; CALL"SUB32"USING * WHERE CHARTEST IS NOT NULL; MOVESQLCODETO SQL-COD
DISPLAY" The correct answers java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 DISPLAY" All indicator variables should be -1" DISPLAY" count1, count2, CALL SUB46 USING SQLCODEjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 DISPLAY" " DISPLAY" Your * WHERE FLOATTEST BETWEEN 44 AND 46; DISPLAY" indic1 = ", DISP1 ", indic2 = ", DISP2 DISPLAY" indic4 = ", DISP4 DISPLAY" indic7 = ", DISP7 ", indic8 = ", DISP8 DISPLAY* FROM JJ
- " count3 = ", count3
MOVE0TO flag1
MOVE0TO flag2
if (indic1 NOT* FROM DD
indic4 NOT = -1) then MOVE1TO flag1 END-IF
if (indic7 NOT = SQLCODE SQL-COD MOVE1TO flag1 END-IF
if (count1 NOT* WHERE NUMTEST IS NULL;
=1) then MOVE1TO flag2
if (flag1 = 0AND flag2 = 0) then * EXEC SQL INSERT INTO TESTREPORT * VALUES('0436','pass','MCO'); CALL"SUB33"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY" *** pass *** " else* EXEC SQL ROLLBACK WORK; * EXEC SQL INSERT INTO TESTREPORT * VALUES('0436','fail','MCO'); ADDMOVESQLCODETO SQL-COD CALL"SUB34"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY =X = 23,REALTP-SUB =1java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64 END-IF
MOVE"2"TO CHARTP MOVE -23TO DECTP
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 34 * EXEC SQL INSERT INTO BB VALUES(:CHARTP :indic1); CALL" USING SQLCODE CHARTP indic1 MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO SS VALUES(:DECTP :indic2); CALL"SUB37"USINGSQLCODE DECTP indic2 MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO GG VALUES(:REALTP-SUB :indic3); CALL"SUB38"USINGSQLCODE REALTP-SUB * VALUES('0437','fail','MCO');
MOVE"X"TO CHARTP MOVE23TO DECTP MOVE45TO REALTP-SUB * EXEC SQL INSERT INTO BB VALUES(:CHARTP :indic4); CALL" ====================== MOVESQLCODE S" * EXEC SQL INSERT INTO SS VALUES(:DECTP :indic5); CALL"SUB40 ********************** END TEST0437 ********************* MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO GG VALUES(:REALTP-SUB :indic6); CALL"SUB41"USINGSQLCODE REALTP-SUB indic6 MOVESQLCODETO SQL-COD
* EXEC SQL INSERT INTO DD SELECT * FROM BB; "---------------------java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO PP SELECT NUMTEST FROM SS; CALL java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31 MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO JJ SELECT REALTEST FROM GG * WHERE REALTEST IS NULL OR REALTEST > 0; CALL"SUB44"USINGSQLCODE MOVESQLCODETO java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 29
* EXEC SQL SELECT CHARTEST INTO :CHARTP * FROM DD * WHERE CHARTEST IS NOT NULL;
S"USING CHARTP MOVESQLCODETO SQL-COD
* EXEC SQL SELECT NUMTEST INTO :DECTP * FROM PP * WHERE NUMTEST IS NOT NULL; CALL"SUB46"USINGSQLCODE DECTP MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :REALTP-SUB * FROM JJ * WHERE FLOATTEST BETWEEN 44 AND 46; CALL"SUB47"USINGSQLCODE REALTP-SUB MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count1 * FROM JJ * WHERE FLOATTEST IS NOT NULL; CALL"SUB48"USINGSQLCODE count1
* EXEC SQL SELECT COUNT(*) INTO :count2 * FROM DD * WHERE CHARTEST IS NULL; * EXEC SQL SELECT COUNT(*) INTO :count3 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count3 * FROM PP * WHERE NUMTEST IS NULL; * WHERE BUDGET NOT BETWEEN 999 AND :DECTP :indic4; MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count4 * FROM JJ * WHERE FLOATTEST IS NULL; CALL"SUB51"USINGSQLCODE count4 MOVESQLCODETO SQL-COD
DISPLAY" The correct answers are:" DISPLAY java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 DISPLAY* FROM STAFF DISPLAY java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 59 DISPLAY" Your answers are:" DISPLAY" CHARTP = ", CHARTP ", * FROM STAFF
- java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 39 DISPLAY" java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 36
count3 ,java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 65
MOVE0TO flag1
if ((CHARTP NOT = "X") S" MOVE1TO flag1 END-IF
MOVE0TO flag2
if (REALTP-SUB NOT = 1) then MOVE1TO"SQLCODE END-IF
MOVE0TO flag3
if (count1 NOT = 1OR count2 NOT = =2,"
= 1OR count4 NOT = 1) then MOVE1TO flag3 END-IF
if( 0AND=0AND= )then * EXEC SQL INSERT INTO TESTREPORT * VALUES('0437','pass','MCO'); CALL"DISPLAY " count5 ," ,count6 MOVE DISPLAY " =," , DISPLAY" *** pass *** " else * EXEC SQL INSERT INTO TESTREPORT * VALUES('0437','fail','MCO'); ADD1 errcnt CALL"SUB54"USINGSQLCODE
SQLCODE DISPLAY" dml076.sco *** NOT = 1) OR (count4 NOT = 0)) t END-IF
DISPLAY" " ********************** END TEST0437 *********************
********************** BEGIN TEST0441 *******************
DISPLAY" TEST0441 " DISPLAY" NULL values for various java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 41 DISPLAY" reference 5.6 <value specification> GR 1 or 2" DISPLAY "----- * EXEC SQL INSERT INTO TESTREPORT
MOVE0TO count1 MOVE -1TO count2 "dml076.sco *fail * java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 MOVE -1TO count4 MOVE0TO count5 MOVE-1TO MOVE0TO count7 MOVE -1TO count8 CALLjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 MOVE -1TO countx
********************** END TEST0441 ********************* MOVE -1TO indic2
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0 MOVE -1TO indic4 MOVE0TO indic5 MOVE -1TO indic6 MOVE0 java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 0 MOVE -1TO indic8 0TO MOVE -1TO indicx
* EXEC SQL SELECT COUNT(*) INTO :count1 * FROM STAFF * WHERE GRADE BETWEEN 9 AND :DECTP :indic1; CALL"SUB55"USINGSQLCODE count1 DECTP indic1 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count2 * FROM STAFF * WHERE GRADE BETWEEN 9 AND :DECTP :indic2; CALL"SUB56"USINGSQLCODE count2 DECTP indic2 MOVESQLCODETO SQL-COD
MOVE39999TO DECTP
* EXEC SQL SELECT COUNT(*) INTO :count3 * FROM PROJ * WHERE BUDGET NOT BETWEEN 9999 AND :DECTP :indic3; CALL"SUB57"USINGSQLCODE count3 DECTP MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count4 * FROM PROJ * WHERE BUDGET NOT BETWEEN 999 AND :DECTP :indic4; "SUB58"USINGSQLCODEcount4 DECTPjava.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 61 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count5 * FROM PROJ * WHERE PNAME LIKE :NME1 :indic5; CALL"SUB59"USINGSQLCODE count5 NME1 indic5 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count6 * FROM PROJ * WHERE PNAME LIKE :NME1 :indic6; CALL"SUB60"USINGSQLCODE count6 NME1 indic6 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count7 * FROM STAFF * WHERE CITY NOT LIKE :CITY1 :indic7; CALL"SUB61"USINGSQLCODE count7 CITY1 indic7 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count8 * FROM STAFF * WHERE CITY NOT LIKE :CITY1 :indic8; CALL"SUB62"USINGSQLCODE count8 CITY1 indic8 MOVESQLCODETO SQL-COD
MOVE20TO DECTP
* EXEC SQL SELECT COUNT(*) INTO :count9 * FROM WORKS * WHERE HOURS <> :DECTP :indic9; CALL"SUB63"USINGSQLCODE count9 DECTP indic9 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :countx * FROM WORKS * WHERE HOURS <> :DECTP :indicx; CALL"SUB64"USINGSQLCODE countx DECTP indicx MOVESQLCODETOSQL-COD
********************** END TEST0441 *********************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
X CHARTP
* **** Procedures for PERFORM statements
P50. * EXEC SQL FETCH X INTO :VAR1; CALL"SUB69"USINGSQLCODE VAR1 MOVESQLCODETO SQL-COD if (SQLCODE = 0) then COMPUTE = count3 + 1 END-IF DISPLAY"VAR1 = ", VAR1 ADD1TOSMLTP
.
P49java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 * EXEC SQL FETCH Y INTO :CITY1; CALL"SUB70"USINGSQLCODE CITY1 MOVESQLCODETO SQL-COD if (SQLCODE = 0) then COMPUTE count2 = count2 + 1 END-IFjava.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39 " =" ADDMOVETO SQL-COD
. "SUB18"USING
P48. MOVE i TO GRDE * EXEC SQL FETCH DINO INTO :VAR1, :CITY1; CALL"SUB71"USINGSQLCODE VAR1 " USINGSQLCODE MOVESQLCODETO* EXEC SQL SELECT CHARTEST INTO :CHARTP:indic1
S =0 " ,VAR1 ",CITY1=" CITY1 MOVE"Dinoville" java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 * EXEC SQL UPDATE STAFF * SET GRADE = :GRDE + 10, CITY = :CITY1 * WHERE CURRENT OF DINO; CALL" MOVESQLCODETO SQL-COD END-IF
if (i = 2) then MOVE"mith java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 * EXEC SQL UPDATE STAFF * SET GRADE = GRADE * :GRDE, EMPNAME = :NME1 * WHERE CURRENT OF DINO; CALL"SUB73"USINGSQLCODE GRDE NME1 MOVEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 DISPLAY" VAR1 = ", VAR1 ", GRDE * WHERE FLOATTEST IS NULL; END-IF ADD1TO i
.
Messung V0.5 in Prozent
¤ 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.0.23Bemerkung:
¤
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 und die Messung sind noch experimentell.