* 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 * *********************************************************
********************** END TEST0435 *********************
********************** BEGIN TEST0436 ********************* *This program tests the NULL values for various *SQL Data Types
DISPLAY" TEST0436 " DISPLAY" NULL values for various SQL Data Types
- " " DISPLAY" reference X3.135-1989 section 4.2, 8.10 GR 8
- " " DISPLAY"
- " -------------------------------------------------"
MOVE"X"TO CHARTP MOVE 0 TO indic1 MOVE 0 TO indic2 MOVE 0 TO indic3 MOVE 0 TO indic4 MOVE 0 TO indic5 MOVE 0 TO indic6 MOVE 0 TO indic7 MOVE 0 TO indic8 MOVE 0 TO count1 MOVE 0 TO count2 MOVE 0 TO count3 MOVE 99999 TO INTTP MOVE 99 TO SMLTP MOVE 999 TO NUMTP MOVE 999 TO DECTP
* EXEC SQL INSERT INTO BB VALUES(NULL); CALL"SUB13"USINGSQLCODE 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"SUB17"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO JJ VALUES(NULL); CALL"SUB18"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"SUB20"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL SELECT CHARTEST INTO :CHARTP:indic1 * FROM BB; CALL"SUB21"USINGSQLCODE CHARTP indic1 MOVESQLCODETO SQL-COD MOVE indic1 TO DISP1
* EXEC SQL SELECT INTTEST INTO :INTTP:indic2 * FROM EE; CALL"SUB22"USINGSQLCODE INTTP indic2 MOVESQLCODETO SQL-COD MOVE indic2 TO DISP2
* 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 SQL-COD 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
********************** END TEST0436 *********************
********************** BEGIN TEST0437 *******************
DISPLAY" TEST0437 " DISPLAY" NULL values for various host variables
- " " DISPLAY" reference X3.135-1989 section 4.2, 8.7, 5.6 GR
- " 1 or 2 " DISPLAY"
- " -------------------------------------------------- "
MOVE -1 TO indic1 MOVE -1 TO indic2 MOVE -1 TO indic3 MOVE 0 TO indic4 MOVE 0 TO indic5 MOVE 0 TO indic6 MOVE 0 TO count1 MOVE 0 TO count2 MOVE 0 TO count3 MOVE 0 TO count4
MOVE"2"TO CHARTP MOVE -23 TO DECTP MOVE 99 TO REALTP-SUB * EXEC SQL INSERT INTO BB VALUES(:CHARTP :indic1); CALL"SUB36"USINGSQLCODE 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 indic3 MOVESQLCODETO SQL-COD
MOVE"X"TO CHARTP MOVE 23 TO DECTP MOVE 45 TO REALTP-SUB * EXEC SQL INSERT INTO BB VALUES(:CHARTP :indic4); CALL"SUB39"USINGSQLCODE CHARTP indic4 MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO SS VALUES(:DECTP :indic5); CALL"SUB40"USINGSQLCODE DECTP indic5 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; CALL"SUB42"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO PP SELECT NUMTEST FROM SS; CALL"SUB43"USINGSQLCODE MOVESQLCODETO SQL-COD * EXEC SQL INSERT INTO JJ SELECT REALTEST FROM GG * WHERE REALTEST IS NULL OR REALTEST > 0; CALL"SUB44"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL SELECT CHARTEST INTO :CHARTP * FROM DD * WHERE CHARTEST IS NOT NULL; CALL"SUB45"USINGSQLCODE 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 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count2 * FROM DD * WHERE CHARTEST IS NULL; CALL"SUB49"USINGSQLCODE count2 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count3 * FROM PP * WHERE NUMTEST IS NULL; CALL"SUB50"USINGSQLCODE count3 MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count4 * FROM JJ * WHERE FLOATTEST IS NULL; CALL"SUB51"USINGSQLCODE count4 MOVESQLCODETO SQL-COD
DISPLAY" " ********************** END TEST0437 *********************
********************** BEGIN TEST0441 *******************
DISPLAY" TEST0441 " DISPLAY" NULL values for various predicates" DISPLAY" reference 5.6 <value specification> GR 1 or 2" DISPLAY "----------------------------------------------------"
MOVE 0 TO count1 MOVE -1 TO count2 MOVE 0 TO count3 MOVE -1 TO count4 MOVE 0 TO count5 MOVE -1 TO count6 MOVE 0 TO count7 MOVE -1 TO count8 MOVE 0 TO count9 MOVE -1 TO countx MOVE 0 TO indic1 MOVE -1 TO indic2 MOVE 0 TO indic3 MOVE -1 TO indic4 MOVE 0 TO indic5 MOVE -1 TO indic6 MOVE 0 TO indic7 MOVE -1 TO indic8 MOVE 0 TO indic9 MOVE -1 TO indicx
MOVE 11 TO DECTP MOVE"V___na%"TO CITY1 MOVE"S_P%"TO NME1
* 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
MOVE 39999 TO 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
MOVE 20 TO 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.