* Standard COBOL (file "DML008.SCO") calling SQL * procedures in file "DML008.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. * * DML008.SCO * WRITTEN BY: HU YANPING * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * THIS ROUTINE TESTS THE SELECT STATEMENT IN THE LANGUAGE OF * SQL. THE FORMAT: * SELECT ( ALL | DISTINCT ) <select list> * INTO <select target list> * <table expression> * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * SECTION 8.5 <delete statement: searched> * SECTION 8.7 <insert statement> * SECTION 8.10 <select statement> * ****************************************************************
* EXEC SQL SELECT EMPNUM,PNUM * INTO :EMPNO1,:PNO1 * FROM WORKS * WHERE EMPNUM='E16' END-EXEC CALL"SUB13"USING SQLCODE EMPNO1 PNO1 MOVE SQLCODE TO SQL-COD
DISPLAY" SQLCODE=", SQL-COD " " DISPLAY"The answer should be SQLCODE = 100." if (SQLCODE = 100) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0018','pass','MCO') END-EXEC CALL"SUB14"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml008.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0018','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB15"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF DISPLAY"==================================================="
DISPLAY" " * EXEC SQL COMMIT WORK; CALL"SUB16"USING SQLCODE MOVE SQLCODE TO SQL-COD ******************** END TEST0018 *******************
******************** BEGIN TEST0019 *******************
* EXEC SQL SELECT EMPNUM,HOURS * INTO :EMPNO1,:HOURS1 * FROM WORKS * WHERE EMPNUM='E1' AND PNUM='P4' END-EXEC CALL"SUB17"USING SQLCODE EMPNO1 HOURS1 MOVE SQLCODE TO SQL-COD
DISPLAY" EMPNO1=", EMPNO1 " and HOURS1=",
HOURS1 " " DISPLAY" SQLCODE=", SQL-COD " " DISPLAY"The answer should be SQLCODE = 0 & HOURS1 = 20." if (SQLCODE = 0 AND HOURS1 = 20) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0019','pass','MCO') END-EXEC CALL"SUB18"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml008.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0019','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB19"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF DISPLAY"=================================================="
DISPLAY" " * EXEC SQL COMMIT WORK; CALL"SUB20"USING SQLCODE MOVE SQLCODE TO SQL-COD ******************** END TEST0019 *******************
******************** BEGIN TEST0020 *******************
DISPLAY" TEST0020 " DISPLAY" select a NULL value record " DISPLAY"reference X3.135-1989 section 8.10 General Rules 8)" DISPLAY" - - - - - - - - - - - - - - - - - - -"
* EXEC SQL INSERT INTO WORKS * VALUES('E18','P18',NULL) END-EXEC CALL"SUB21"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT EMPNUM,HOURS * INTO :EMPNO1,:HOURS1:indic2 * FROM WORKS * WHERE EMPNUM='E18' AND PNUM='P18' END-EXEC CALL"SUB22"USING SQLCODE EMPNO1 HOURS1 indic2 MOVE SQLCODE TO SQL-COD MOVE indic2 TO DISP2
DISPLAY" " * EXEC SQL COMMIT WORK; CALL"SUB26"USING SQLCODE MOVE SQLCODE TO SQL-COD ******************** END TEST0020 *******************
******************** BEGIN TEST0021 *******************
DISPLAY" TEST0021 " DISPLAY" select different length character values " DISPLAY"reference X3.135-1989 section 8.10 Gen Rule 8, Case
- " A " DISPLAY" - - - - - - - - - - - - - - - - - - -"
* EXEC SQL SELECT CITY * INTO :CITY1:indic1 * FROM STAFF * WHERE EMPNUM='E5' END-EXEC CALL"SUB27"USING SQLCODE CITY1 indic1 MOVE SQLCODE TO SQL-COD MOVE indic1 TO DISP1
DISPLAY" EMPNUM=E5 and CITY1=", CITY1 " "
DISPLAY" indic1=", DISP1 " " DISPLAY"The answer should be indic1 = 15 "
if (indic1 = 15 AND SQLCODE NOTLESS 0) then DISPLAY" 8.10 select statement GR 8) Case A)" DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0021','pass','MCO') END-EXEC CALL"SUB28"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" 8.10 select statement GR 8) Case A)" DISPLAY" dml008.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0021','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB29"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF DISPLAY "========================================================"
******************** END TEST0021 ******************* ******************** BEGIN TEST0165 *******************
DISPLAY" TEST0165 "
DISPLAY" select different length character values " DISPLAY"Reference X3.135-1989 section 8.10 Gen Rule 8), Case
- " B " DISPLAY" The answer should be CITY1 = Akro " DISPLAY" - - - - - - - - - - - - - - - - - - -"
* EXEC SQL SELECT CITY * INTO :CITY1:indic1 * FROM STAFF * WHERE EMPNUM='E5' END-EXEC CALL"SUB31"USING SQLCODE CITY1 indic1 MOVE SQLCODE TO SQL-COD MOVE indic1 TO DISP1
DISPLAY" EMPNUM=E5 and CITY1=", CITY1 " "
DISPLAY" indic1=", DISP1 " "
if (CITY1 = "Akro") then DISPLAY" 8.10 select statement GR 9) Case B)" DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0165','pass','MCO') END-EXEC CALL"SUB32"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" 8.10 select statement GR 9) Case B)" DISPLAY" dml008.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0165','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.