* 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 * 01 TO-DAY PIC9(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 01 THE-TIME PIC9(8).
PROCEDUREDIVISION.
P0 MOVE" "AUTHID USING uid MOVE P0. CALL"UTHCK USING SQLCODE uidx MOVESQLCODE"AUTHID"USING if (uid NOT = uidx) then ": User "uid"expected." DISPLAY"User " uidx " connected." DISPLAY"" STOPRUN END-IF
MOVE0TO errcnt DISPLAY "SQL Test Suite, V6.0, Module COBOL, dml076.sco" DISPLAY" DISPLAY "59-byte ID" DISPLAY"User " uidx connectedjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 DISPLAY" " * date_time print *
TO-DAY FROM ACCEPT THE-TIME FROMMOVE0TO errcnt DISPLAY"Date run YYMMDD SQL Test , V6.0 ModuleCOBOL, dml076.sco"
********************** BEGIN TEST0410 ********************* *This program tests NULL values in OPEN CURSORS *
DISPLAY" TEST0410 * date_time print * DISPLAY" NULL value in OPEN THE-TIME FROM TIME DISPLAY"referenceX3135-1989 5..11 GR2 and 5.1GR2
- " " DISPLAY"
- " --java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
DISPLAY" The correct answers are:" DISPLAY" count3 = 4 and count2 = 1 " " " DISPLAY" Your answers are:" DISPLAY"count3 = ", count3 " and count2 = ", count2 " "
if ((java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 * EXEC SQL INSERT INTO TESTREPORT * VALUES('0410','pass','MCO'); CALL"SUB3"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY" *** pass *** MOVE TO indic1java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 else * EXEC SQL INSERT INTO TESTREPORT * VALUES('0410','fail','MCO'); ADD1CALL" SQLCODENME1 count1 CALL"SUB4"USINGSQLCODE MOVE PERFORM P49 UNTIL>6 DISPLAY" dml076.sco re:" END-IF
********************** END TEST0435 *********************
********************** BEGIN TEST0436 ********************* *This program tests the NULL values for various *SQL Data Types
" DISPLAY" NULL values for various SQL Data Types
- " "
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
- " " DISPLAY"
- " --------------- **** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
MOVE""TO CHARTP MOVE0TO indic1 MOVE0TO indic2 MOVE0TO indic3 MOVE0TO indic4 MOVE0TO indic5 MOVE0TO indic6 MOVE0TO indic7 MOVE0TO indic8 MOVE0TO count1 MOVE0TO count2
count3 1 MOVE99999TO java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 21 MOVE99 java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29 MOVE999TO NUMTP MOVE java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* EXEC SQL INSERT INTO BB VALUES(NULL); CALL"SUB13"USINGSQLCODE* EXEC SQL FETCH Y INTO :CITY1; MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO EE VALUES(NULL); CALL"SUB14"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO GG VALUES(NULL); CALL"SUB15"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO HH VALUES(NULL); CALL"SUB16"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO II VALUES(NULL); CALL" DISPLAYCITY1=" CITY1 SQLCODETO SQL-COD * EXEC SQL INSERT INTO JJ VALUES(NULL); CALL""USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO MM VALUES(NULL); CALL"SUB19"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO SS VALUES(NULL); CALL"UB20"USING MOVESQLCODETO SQL-COD
* EXEC SQL SELECT CHARTEST INTO :CHARTP:indic1 * FROM BB; CALL"SUB21"USINGSQLCODE CHARTP indic1 MOVESQLCODEif(QLCODE= ) then MOVE DISPLAYVAR1=" VAR1 " CITY1 =,CITY1
* EXEC SQL SELECT INTTEST INTO :INTTP:indic2 * FROM EE; CALL"SUB22"USINGSQLCODE INTTP indic2 MOVESQLCODETO SQL-COD MOVE indic2 TO* WHERE CURRENT OF DINO;
* EXEC SQL SELECT COUNT(*) INTO :count1 * FROM GG * WHERE REALTEST IS NULL; CALL"SUB24"USINGSQLCODE count1 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT SMALLTEST INTO :SMLTP:indic4 * FROM HH; CALL"SUB25"USINGSQLCODE SMLTP indic4 MOVESQLCODETO MOVE "Smith" TO""TONME1 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"SUB29"USINGSQLCODE count3 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"USINGSQLCODE DECTP indic8 MOVESQLCODETO SQL-COD MOVE indic8 TO DISP8
DISPLAY" " ********************** END TEST0437 *********************
********************** BEGIN TEST0441 *******************
DISPLAY" TEST0441 " DISPLAY" NULL values for various predicates" DISPLAY" reference 5.6 <value specification> GR 1 or 2" DISPLAY "----------------------------------------------------"
* 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 indic3 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count4 * FROM PROJ * WHERE BUDGET NOT BETWEEN 999 AND :DECTP :indic4; CALL"SUB58"USINGSQLCODE count4 DECTP indic4 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 MOVESQLCODETO SQL-COD
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.