* Standard COBOL (file "DML113.SCO") calling SQL * procedures in file "DML113.MCO".
**************************************************************** * * COMMENT SECTION * * DATE 1993/11/10 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. * * DML113.SCO * WRITTEN BY: David W. Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * This routine tests NULLs with DATETIME data types and in * outer joins, datetimes in a <default clause>, TRIM, and also * some schema manipulation statements. * This is the dynamic version of DML112.PC. * * REFERENCES * FIPS PUB 127-2 14.1 Transitional SQL * ANSI SQL-1992 * ****************************************************************
*Do this with an outer join in a combined test later. *For FSQL, use SELECT DISTINCT (all that stuff)
*Statement too long for CONCATBUF; break into two views. *Even now, this statement has whitespace removed to make it fit
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB15"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'CREATE VIEW NULLINV AS' * || * ' SELECT ITEMKEY,ORDERED,CAST' * || * ' (NULL AS INTERVAL MONTH) AS MWAIT,CAST' * || * ' (NULL AS INTERVAL DAY TO HOUR) AS DWAIT FROM' * || * ' MERCH WHERE RDATE IS NOT NULL AND SOLD IS NULL' * || * ' AND MERCH.ITEMKEY NOT IN(SELECT ITEMKEY' * || * ' FROM TURNAROUND)' * ); CALL"SUB16"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB17"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB57"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM' || * ' MERCH A, MERCH B WHERE A.SOLD = B.SOLD' * ); CALL"SUB58"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB59"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11313 FROM :longst;" * EXEC SQL PREPARE S11313 FROM :longst; CALL"SUB60"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11313 CURSOR FOR S11313;" * EXEC SQL DECLARE C11313 CURSOR FOR S11313 END-EXEC DISPLAY" "
DISPLAY"OPEN C11313;" * EXEC SQL OPEN C11313; CALL"SUB61"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11313 INTO :int1;" * EXEC SQL FETCH C11313 INTO :int1; CALL"SUB62"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11313;" * EXEC SQL CLOSE C11313; CALL"SUB63"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB64"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM' || * ' MERCH A, MERCH B WHERE A.RTIME = B.RTIME' * ); CALL"SUB65"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB66"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11314 FROM :longst;" * EXEC SQL PREPARE S11314 FROM :longst; CALL"SUB67"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11314 CURSOR FOR S11314;" * EXEC SQL DECLARE C11314 CURSOR FOR S11314 END-EXEC DISPLAY" "
DISPLAY"OPEN C11314;" * EXEC SQL OPEN C11314; CALL"SUB68"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11314 INTO :int1;" * EXEC SQL FETCH C11314 INTO :int1; CALL"SUB69"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11314;" * EXEC SQL CLOSE C11314; CALL"SUB70"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"dstmt=""SELECT COUNT(*) FROM MERCH WHERE RDATE IS
- " NULL""" MOVE"SELECT COUNT(*) FROM MERCH WHERE RDATE IS
- " NULL "TO dstmt
DISPLAY"PREPARE S11315 FROM :dstmt;" * EXEC SQL PREPARE S11315 FROM :dstmt; CALL"SUB71"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11315 CURSOR FOR S11315;" * EXEC SQL DECLARE C11315 CURSOR FOR S11315 END-EXEC DISPLAY" "
DISPLAY"OPEN C11315;" * EXEC SQL OPEN C11315; CALL"SUB72"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11315 INTO :int1;" * EXEC SQL FETCH C11315 INTO :int1; CALL"SUB73"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11315;" * EXEC SQL CLOSE C11315; CALL"SUB74"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB75"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM TURNAROUND' || * ' WHERE DWAIT IS NOT NULL' * ); CALL"SUB76"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB77"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11316 FROM :longst;" * EXEC SQL PREPARE S11316 FROM :longst; CALL"SUB78"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11316 CURSOR FOR S11316;" * EXEC SQL DECLARE C11316 CURSOR FOR S11316 END-EXEC DISPLAY" "
DISPLAY"OPEN C11316;" * EXEC SQL OPEN C11316; CALL"SUB79"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11316 INTO :int1;" * EXEC SQL FETCH C11316 INTO :int1; CALL"SUB80"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11316;" * EXEC SQL CLOSE C11316; CALL"SUB81"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB82"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT EXTRACT (DAY FROM RDATE)' || * ' FROM MERCH, TURNAROUND WHERE MERCH.ITEMKEY =' || * ' TURNAROUND.ITEMKEY' * ); CALL"SUB83"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB84"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11317 FROM :longst;" * EXEC SQL PREPARE S11317 FROM :longst; CALL"SUB85"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11317 CURSOR FOR S11317;" * EXEC SQL DECLARE C11317 CURSOR FOR S11317 END-EXEC DISPLAY" "
DISPLAY"OPEN C11317;" * EXEC SQL OPEN C11317; CALL"SUB86"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 MOVE 2 TO ind1 DISPLAY"FETCH C11317 INTO :int1:ind1;" * EXEC SQL FETCH C11317 INTO :int1:ind1; CALL"SUB87"USING SQLCODE SQLSTATE int1 ind1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ind1 should be -1; its value is ", ind1 if (ind1 NOT = -1) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11317;" * EXEC SQL CLOSE C11317; CALL"SUB88"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"dstmt=""SELECT ITEMKEY FROM MERCH WHERE SOLD IS
- " NOT NULL""" MOVE"SELECT ITEMKEY FROM MERCH WHERE SOLD IS NOT NULL " TO dstmt
DISPLAY"PREPARE S11318 FROM :dstmt;" * EXEC SQL PREPARE S11318 FROM :dstmt; CALL"SUB89"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11318 CURSOR FOR S11318;" * EXEC SQL DECLARE C11318 CURSOR FOR S11318 END-EXEC DISPLAY" "
DISPLAY"OPEN C11318;" * EXEC SQL OPEN C11318; CALL"SUB90"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11318 INTO :int1;" * EXEC SQL FETCH C11318 INTO :int1; CALL"SUB91"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
*Cursor left open.
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB92"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT EXTRACT (HOUR FROM AVG (DWAIT))' || * ' FROM MERCH, TURNAROUND WHERE' || * ' MERCH.ITEMKEY = TURNAROUND.ITEMKEY OR' || * ' TURNAROUND.ITEMKEY NOT IN' || * ' (SELECT ITEMKEY FROM MERCH)' * ); CALL"SUB93"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB94"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11319 FROM :longst;" * EXEC SQL PREPARE S11319 FROM :longst; CALL"SUB95"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11319 CURSOR FOR S11319;" * EXEC SQL DECLARE C11319 CURSOR FOR S11319 END-EXEC DISPLAY" "
DISPLAY"OPEN C11319;" * EXEC SQL OPEN C11319; CALL"SUB96"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD
DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD if (SQLCODE < 0) then MOVE 0 TO flag END-IF DISPLAY"SQLSTATE can be 00000 or 01003; its value is ",
SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (NORMSQ NOT = "00000"AND SQLSTATE NOT = "01003") then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH C11319 INTO :int1;" * EXEC SQL FETCH C11319 INTO :int1; CALL"SUB97"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD
*DML083 set the precedent for requiring 01003 on the fetches. *One might argue that it ought to be returned just on the *open and never again. DML083 is under dispute, so status *codes are checked loosely here.
DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD if (SQLCODE < 0) then MOVE 0 TO flag END-IF DISPLAY"SQLSTATE can be 00000 or 01003; its value is ",
SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (NORMSQ NOT = "00000"AND SQLSTATE NOT = "01003") then MOVE 0 TO flag END-IF DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB98"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*)' || * ' FROM INVENTORY WHERE MWAIT IS NULL' || * ' AND DWAIT IS NULL' * ); CALL"SUB99"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB100"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S1131A FROM :longst;" * EXEC SQL PREPARE S1131A FROM :longst; CALL"SUB101"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C1131A CURSOR FOR S1131A;" * EXEC SQL DECLARE C1131A CURSOR FOR S1131A END-EXEC DISPLAY" "
DISPLAY"OPEN C1131A;" * EXEC SQL OPEN C1131A; CALL"SUB102"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C1131A INTO :int1;" * EXEC SQL FETCH C1131A INTO :int1; CALL"SUB103"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB111"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0622 ******************** ******************** BEGIN TEST0624 ******************* MOVE 1 TO flag
DISPLAY"dstmt=""SELECT COUNT(*) FROM JNULL3""" MOVE"SELECT COUNT(*) FROM JNULL3
- " "TO dstmt
DISPLAY"PREPARE S11321 FROM :dstmt;" * EXEC SQL PREPARE S11321 FROM :dstmt; CALL"SUB145"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11321 CURSOR FOR S11321;" * EXEC SQL DECLARE C11321 CURSOR FOR S11321 END-EXEC DISPLAY" "
DISPLAY"OPEN C11321;" * EXEC SQL OPEN C11321; CALL"SUB146"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11321 INTO :int1;" * EXEC SQL FETCH C11321 INTO :int1; CALL"SUB147"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 5; its value is ", int1 if (int1 NOT = 5) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11321;" * EXEC SQL CLOSE C11321; CALL"SUB148"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB149"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM JNULL3' || * ' WHERE D2 IS NOT NULL OR D1 IS NOT NULL' * ); CALL"SUB150"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB151"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11322 FROM :longst;" * EXEC SQL PREPARE S11322 FROM :longst; CALL"SUB152"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11322 CURSOR FOR S11322;" * EXEC SQL DECLARE C11322 CURSOR FOR S11322 END-EXEC DISPLAY" "
DISPLAY"OPEN C11322;" * EXEC SQL OPEN C11322; CALL"SUB153"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11322 INTO :int1;" * EXEC SQL FETCH C11322 INTO :int1; CALL"SUB154"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11322;" * EXEC SQL CLOSE C11322; CALL"SUB155"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB156"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM' || * ' JNULL5' * ); CALL"SUB157"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB158"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11323 FROM :longst;" * EXEC SQL PREPARE S11323 FROM :longst; CALL"SUB159"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11323 CURSOR FOR S11323;" * EXEC SQL DECLARE C11323 CURSOR FOR S11323 END-EXEC DISPLAY" "
DISPLAY"OPEN C11323;" * EXEC SQL OPEN C11323; CALL"SUB160"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11323 INTO :int1;" * EXEC SQL FETCH C11323 INTO :int1; CALL"SUB161"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11323;" * EXEC SQL CLOSE C11323; CALL"SUB162"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB163"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM' || * ' JNULL6' || * ' WHERE C2 IS NOT NULL' * ); CALL"SUB164"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB165"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11324 FROM :longst;" * EXEC SQL PREPARE S11324 FROM :longst; CALL"SUB166"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11324 CURSOR FOR S11324;" * EXEC SQL DECLARE C11324 CURSOR FOR S11324 END-EXEC DISPLAY" "
DISPLAY"OPEN C11324;" * EXEC SQL OPEN C11324; CALL"SUB167"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11324 INTO :int1;" * EXEC SQL FETCH C11324 INTO :int1; CALL"SUB168"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 3; its value is ", int1 if (int1 NOT = 3) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11324;" * EXEC SQL CLOSE C11324; CALL"SUB169"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*Nonempty table
DISPLAY"dstmt=""INSERT INTO JNULL2 SELECT * FROM JNULL1""" MOVE"INSERT INTO JNULL2 SELECT * FROM JNULL1
- " "TO dstmt
DISPLAY"OPEN C11321;" * EXEC SQL OPEN C11321; CALL"SUB146"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11321 INTO :int1;" * EXEC SQL FETCH C11321 INTO :int1; CALL"SUB173"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 9; its value is ", int1 if (int1 NOT = 9) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11321;" * EXEC SQL CLOSE C11321; CALL"SUB174"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"dstmt=""SELECT COUNT(*) FROM JNULL3 WHERE C1 IS
- " NULL""" MOVE"SELECT COUNT(*) FROM JNULL3 WHERE C1 IS
- " NULL "TO dstmt
DISPLAY"PREPARE S11325 FROM :dstmt;" * EXEC SQL PREPARE S11325 FROM :dstmt; CALL"SUB175"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11325 CURSOR FOR S11325;" * EXEC SQL DECLARE C11325 CURSOR FOR S11325 END-EXEC DISPLAY" "
DISPLAY"OPEN C11325;" * EXEC SQL OPEN C11325; CALL"SUB176"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11325 INTO :int1;" * EXEC SQL FETCH C11325 INTO :int1; CALL"SUB177"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 4; its value is ", int1 if (int1 NOT = 4) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11325;" * EXEC SQL CLOSE C11325; CALL"SUB178"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"dstmt=""SELECT COUNT(*) FROM JNULL3 WHERE D1 IS
- " NULL""" MOVE"SELECT COUNT(*) FROM JNULL3 WHERE D1 IS
- " NULL "TO dstmt
DISPLAY"PREPARE S11326 FROM :dstmt;" * EXEC SQL PREPARE S11326 FROM :dstmt; CALL"SUB179"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11326 CURSOR FOR S11326;" * EXEC SQL DECLARE C11326 CURSOR FOR S11326 END-EXEC DISPLAY" "
DISPLAY"OPEN C11326;" * EXEC SQL OPEN C11326; CALL"SUB180"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11326 INTO :int1;" * EXEC SQL FETCH C11326 INTO :int1; CALL"SUB181"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 5; its value is ", int1 if (int1 NOT = 5) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11326;" * EXEC SQL CLOSE C11326; CALL"SUB182"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"dstmt=""SELECT COUNT(*) FROM JNULL3 WHERE D2 IS
- " NULL""" MOVE"SELECT COUNT(*) FROM JNULL3 WHERE D2 IS
- " NULL "TO dstmt
DISPLAY"PREPARE S11327 FROM :dstmt;" * EXEC SQL PREPARE S11327 FROM :dstmt; CALL"SUB183"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11327 CURSOR FOR S11327;" * EXEC SQL DECLARE C11327 CURSOR FOR S11327 END-EXEC DISPLAY" "
DISPLAY"OPEN C11327;" * EXEC SQL OPEN C11327; CALL"SUB184"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11327 INTO :int1;" * EXEC SQL FETCH C11327 INTO :int1; CALL"SUB185"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 3; its value is ", int1 if (int1 NOT = 3) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11327;" * EXEC SQL CLOSE C11327; CALL"SUB186"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"dstmt=""SELECT AVG(D1) * 10 FROM JNULL3""" MOVE"SELECT AVG(D1) * 10 FROM JNULL3
- " "TO dstmt
DISPLAY"PREPARE S11328 FROM :dstmt;" * EXEC SQL PREPARE S11328 FROM :dstmt; CALL"SUB187"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11328 CURSOR FOR S11328;" * EXEC SQL DECLARE C11328 CURSOR FOR S11328 END-EXEC DISPLAY" "
DISPLAY"OPEN C11328;" * EXEC SQL OPEN C11328; CALL"SUB188"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD if (SQLCODE < 0) then MOVE 0 TO flag END-IF DISPLAY"SQLSTATE can be 00000 or 01003; its value is ",
SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (NORMSQ NOT = "00000"AND SQLSTATE NOT = "01003") then MOVE 0 TO flag END-IF DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11328 INTO :int1;" * EXEC SQL FETCH C11328 INTO :int1; CALL"SUB189"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD if (SQLCODE < 0) then MOVE 0 TO flag END-IF DISPLAY"SQLSTATE can be 00000 or 01003; its value is ",
SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (NORMSQ NOT = "00000"AND SQLSTATE NOT = "01003") then MOVE 0 TO flag END-IF DISPLAY"int1 should be 15; its value is ", int1 if (int1 NOT = 15) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11328;" * EXEC SQL CLOSE C11328; CALL"SUB190"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB191"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*)' || * ' FROM JNULL6' || * ' WHERE C2 = 1' * ); CALL"SUB192"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB193"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S11329 FROM :longst;" * EXEC SQL PREPARE S11329 FROM :longst; CALL"SUB194"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C11329 CURSOR FOR S11329;" * EXEC SQL DECLARE C11329 CURSOR FOR S11329 END-EXEC DISPLAY" "
DISPLAY"OPEN C11329;" * EXEC SQL OPEN C11329; CALL"SUB195"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C11329 INTO :int1;" * EXEC SQL FETCH C11329 INTO :int1; CALL"SUB196"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 6; its value is ", int1 if (int1 NOT = 6) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C11329;" * EXEC SQL CLOSE C11329; CALL"SUB197"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB198"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*)' || * ' FROM JNULL6' || * ' WHERE C2 IS NULL' * ); CALL"SUB199"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB200"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S1132A FROM :longst;" * EXEC SQL PREPARE S1132A FROM :longst; CALL"SUB201"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C1132A CURSOR FOR S1132A;" * EXEC SQL DECLARE C1132A CURSOR FOR S1132A END-EXEC DISPLAY" "
DISPLAY"OPEN C1132A;" * EXEC SQL OPEN C1132A; CALL"SUB202"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C1132A INTO :int1;" * EXEC SQL FETCH C1132A INTO :int1; CALL"SUB203"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C1132A;" * EXEC SQL CLOSE C1132A; CALL"SUB204"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB205"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*)' || * ' FROM JNULL6' || * ' WHERE C2 = C1 AND' || * ' D1 IS NULL' * ); CALL"SUB206"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB207"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S1132B FROM :longst;" * EXEC SQL PREPARE S1132B FROM :longst; CALL"SUB208"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C1132B CURSOR FOR S1132B;" * EXEC SQL DECLARE C1132B CURSOR FOR S1132B END-EXEC DISPLAY" "
DISPLAY"OPEN C1132B;" * EXEC SQL OPEN C1132B; CALL"SUB209"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C1132B INTO :int1;" * EXEC SQL FETCH C1132B INTO :int1; CALL"SUB210"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C1132B;" * EXEC SQL CLOSE C1132B; CALL"SUB211"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL COMMIT WORK; CALL"SUB219"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0624 ******************** ******************** BEGIN TEST0626 ******************* MOVE 1 TO flag
DISPLAY" TEST0626 " DISPLAY" ADD COLUMN and DROP COLUMN (dynamic)"
--> --------------------
--> maximum size reached
--> --------------------
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.49Angebot
Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können
¤
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.