IDENTIFICATIONDIVISION. PROGRAM-ID. DML131. ENVIRONMENT . CONFIGURATIONSECTION. xyz SOURCE-COMPUTER xyzjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 OBJECT-COMPUTER. xyz. DATADIVISION. WORKING-STORAGESECTION.
* EMBEDDED COBOL (file "DML131.PCO")
**************************************************************** * * COMMENT SECTION * * DATE 1994/8/16 EMBEDDED 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. * * DML131.PCO * WRITTEN BY: David W. Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE * * This routine tests the Information Schema. * * REFERENCES * FIPS PUB 127-2 14.1 Transitional SQL * ANSI SQL-1992 * ****************************************************************
MOVE"FLATER "TO1 THE-TIMEPIC 9(). ALL"AUTHID USING uid
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 EXECSQLSELECT USER MOVE SQLCODE TO. MOVE"TOuid MOVE SQLCODE TO""USINGjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 if( NOT=uidx DISPLAY"ERROR: User ", uid " SQLCODE TOSQL-COD
- " connected" STOP SQLCODE SQL-COD END-IF MOVE errcnt
DISPLAY "SQL Suite, V6.,EmbeddedCOBOL dml131.cojava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 DISPLAY "5END-IF DISPLAY"Ed Version " *date_time print ACCEPT TO-DAY FROMDATE SQLSuiteEmbedded" DISPLAYDate YYMMDD " at hhmmssff:"THE-TIME
******************** BEGIN TEST0683 ******************* MOVE 1 TO" Version #"
DISPLAY java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 DISPLAY" INFO_SCHEM: Changes are visible" DISPLAYReferences DISPLAY" java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 DISPLAY" java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 DISPLAY FIPS Notice1 Shortened
- " identifiers" DISPLAY" " DISPLAY" - - - - - - - - - - DISPLAY #2 --information "
COMPUTE SQLCODE = -1 MOVE"xxxxx"TO SQLSTATE
*Table should not exist yet
COMPUTE int1 = -1
DISPLAY COUNT :nt1INFO_SCHEM DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'VISCHANGE';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'VISCHANGE' END-EXEC 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
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY"WHERETABLE_SCHEM='FLATER'ANDTABLE_NAME=
- " DISPLAY - ------- --
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = MOVE"xxxxx"TO END-EXEC MOVE SQLCODE TO SQL-COD PERFORMSQLCOUNTINTOFROM.TABLES "shouldbe0its " java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 if (int1 NOT CHCKOK MOVE 0 TO flag (int1java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 END-IF
DISPLAY ; EXECSELECT java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 MOVEjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 EXECSQL CHCKOK MOVETO PERFORM CHCKOK DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY"COMMIT WORK;" EXEC" ;java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 MOVE SQLCODE TO SQL-COD SQLCODE
CHCKOK DISPLAY" DISPLAY "
*Table should exist
COMPUTE SELECT : FROM.TABLES DISPLAY" WHERE SQL TABLE VISCHANGE (C1 INT, FLOAT) java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
- " 'VISCHANGE'" DISPLAY" EXECSQLEXEC COMMIT
WHERE'' VISCHANGE
TABLE_TYPEEND-EXEC MOVE SQLCODE PERFORM DISPLAY"int1 should be 1; its value is DISPLAY"COUNT) : FROM.TABLES if'" MOVEflag END-IF
MOVE 0 TO int1 = FLATER java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 DISPLAY"SELECT COUNT(* SQLCODE SQL-COD
- "DISPLAY " should java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 DISPLAY" WHERE TABLE_SCHEM = 'FLATER' 0 flag
- " 'VISCHANGE';" SQL(* : FROM.COLUMNS
WHERE SELECT java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 END-EXEC MOVE SQLCODEjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 PERFORM DISPLAY"int1 should be 2; its value is ", int1 if( NOT = 2) then MOVE 0 TO SQLCODE
; EXECSQL 0 flag MOVE SQLCODE SQL WORK PERFORM DISPLAYPERFORM
DISPLAY"ALTER TABLEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
E SQL VISCHANGE END-EXEC MOVE SQLCODE TO SQL-COD
CHCKOK DISPLAY" PERFORM CHCKOK
DISPLAY"COMMIT DISPLAY COMMITjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 EXECSQL COMMITMOVETOSQL-COD MOVE SQLCODETO " DISPLAY" "
*Deleted column should not exist
MOVE 0 TO int1 COUNT) INTO :nt1
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND " TABLE_SCHEM FLATER = SQLCOUNT) : FROM EXECWHEREFLATER=
WHERE TABLE_SCHEM
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 MOVETO PERFORM ( NOT)then DISPLAY" should be1 its value ",java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 if MOVE flag
- " INFO_SCHEM.COLUMNS" DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- .COLUMNS DISPLAY -"VISCHANGE
- " 'VISCHANGE'" EXECSELECT : FROM.COLUMNS
UNT : FROM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER TO java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 AND COLUMN_NAMEifNOT java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 MOVE SQLCODE PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 ifint1=1) then MOVE 0 TO flag END-IF
DISPLAY"ROLLBACK WORK;" EXECSQL ROLLBACK WORK END-EXEC MOVETO PERFORM DISPLAY" "
DISPLAY"DROP TABLE VISCHANGE CASCADE;" EXECSQL DROP TABLE VISCHANGE CASCADE END-EXEC MOVE SQLCODE TO SQL-COD PERFORM DISPLAY" "
MIT;" EXECSQL COMMIT WORK END-EXECDISPLAY"" MOVETO SQL-COD PERFORM CHCKOK DISPLAY""
*Table should not exist
COMPUTE CHCKOK DISPLAY"SELECT COUNT(*) INTO :int1 DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME = "'';" EXECSQLSELECTCOUNT(*) INTO :int1DISPLAYSELECT* INTO TABLES
WHERE -" VISCHANGE'" END-EXEC MOVETOjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
CHCKOK DISPLAY"int1 should be 0; its value is ", if ( NOT = 0) then MOVETO
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'VISCHANGE';" EXECSQLSELECTCOUNT(*) "COLUMNS"
WHERE''
MOVEWHERE =''='' PERFORMTO DISPLAY"int1 should be DISPLAY " should 0 its is if (int1 NOT = 0) then MOVEEND-IF END-IFDISPLAYWORK
DISPLAY"ROLLBACK WORK;" EXECSQL ROLLBACK WORK CHCKOK MOVE SQLCODE TO ( = 1 java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 PERFORM CHCKOK DISPLAY" "
if ( flag = 1 ) then SQLCODETO
eljava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 EXECSQLEXECSQLINTO HU
VALUES'68',','') END-EXEC MOVEMOVETO SQL-COD else DISPLAY" dml131.pco *** fail *** " EXECINSERTINTO.TESTREPORT
VALUES('0683','fail','PCO') END-EXEC MOVE SQLCODE TO COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY"================================== SQLCODE TO SQL-COD
EXECSQL COMMIT WORK MOVE SQLCODE TO SQL-COD ******************** END TEST0683 ******************** ******************** BEGIN TEST0684 ******************* MOVE 1 TO flag
*This test checks for the correct levels of visibility in the *Information Schema when the user has different levels of *access to the target table.
*FLATER has SELECT on HU.WORKS
COMPUTE int1 = -1 DISPLAY"SELECTCOUNT(* INTO :nt1 FROM INFO_SCHEM.TABLES"
AY " WHERE TABLE_SCHEM '' TABLE_NAME=
- " 'WORKS'" DISPLAY" AND TABLE_TYPE = 'BASE TABLE';" *This test checks for the correct levels of visibility in the
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME = 'WORKS' AND TABLE_TYPE = 'BASE TABLE'END-EXEC MOVETOjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 =' '"
0TO END-IF
MOVE 0 TO int1AND = 'BASE TABLE'END-EXEC DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" "WHERE TABLE_SCHEM 'HU'AND ABLE_NAME
- " 'WORKS';" EXECSQLCOUNT)INTOFROM INFO_SCHEM
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME =MOVETO END-EXEC MOVE SQLCODE SQL-COD " COUNT(* INTO int1FROM DISPLAYint1;valuejava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 if (int1DISPLAY" WHERETABLE_SCHEM='HU' TABLE_NAME =
0TO END-IF
*PUBLIC has INSERT on HU.TESTREPORT
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES" DISPLAY"WHERETABLE_SCHEM= 'HU' AND TABLE_NAME =
- " 'TESTREPORT'" DISPLAY" AND TABLE_TYPE = 'VIEW';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME = 'TESTREPORT'
TABLE_TYPE VIEWjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 MOVE SQLCODETOSQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; ifNOT 3java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 if (END-IF MOVE*PUBLIC has INSERT on HU.TESTREPORT END-IF
COMPUTE int1 "SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.ABLES" DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.VIEWS"
TABLE_SCHEMHU =
- " 'TESTREPORT';" EXECSQLCOUNT)INTOint1VIEWS
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME " TABLE_TYPE = 'VIEW'" END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK ANDTABLE_TYPEVIEW if (int1 NOT SQLCODE SQL-COD MOVETO END-IF
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME =
- " 'TESTREPORT';" SQLCOUNT* INTOint1INFO_SCHEM
WHERE TABLE_SCHEM "WHERETABLE_SCHEM= 'HU TABLE_NAME java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 END-EXEC MOVE SQLCODE TO SQL-COD PERFORM DISPLAY"int1 should be 3java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 if (int1 NOT = 3) then DISPLAYint11 its "int1 END-IF
*FLATER has UPDATE (COL1) on HU.VTABLE
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME =
- " 'VTABLE'" DISPLAY" AND TABLE_TYPE = 'BASE TABLE';" EXECSQL TABLE_SCHEMHUTABLE_NAME'
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME = 'VTABLE' AND TABLE_TYPE SQLCODE SQL-COD
CHCKOK PERFORM DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME =
- ''; EXECDISPLAY" COUNT(* INTO :int1FROM INFO_SCHEM.TABLES"
TABLE_SCHEM=''AND = 'VTABLE' END-EXEC MOVE SQLCODE PERFORMCHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT TABLE_SCHEM = ''AND TABLE_NAME'VTABLE MOVEMOVETO SQL-COD END-IF
*FLATER has ZILCH on HU.FF
COMPUTE int1 = -1
CT (*) :int1FROMINFO_SCHEM" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME = 'FF';" EXECSQLSELECTCOUNT*) INTO:int1 FROM INFO_SCHEM.java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
WHERE TABLE_SCHEM =='HU'AND TABLE_NAME ''END-EXEC MOVETO SQL-COD
CHCKOK DISPLAY" TABLE_SCHEM = 'HU'ANDTABLE_NAME java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 ifint1 = 0) hen MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME = 'FF';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'HU' MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 shouldbe 0 its alueis ", int1
( NOT= 0then MOVE 0 TO flag END-IF
DISPLAY============================java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
EXECSQL COMMIT WORK MOVETO SQL-COD ******************** END TEST0684 ******************** ******************** BEGIN TEST0685 *******************
('068',pass
DISPLAY" TEST0685 " DISPLAY" INFO_SCHEM: Privileges ISPLAY " dml131* *** java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 DISPLAY"References:" DISPLAY" F# 2 -- Basic information schema" DISPLAY" java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 DISPLAY" F#java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
SQLCODE
- " ******************** END TEST0684 ******************** DISPLAY" in INFO_SCHEM" DISPLAY" - - - - - - -java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
-java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 MOVE"xxxxx"TO SQLSTATE
*11.3 GR.4: owner privs are granted by _SYSTEM
COMPUTE int1COMPUTESQLCODEjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY DISPLAY" WHERE TABLE_SCHEM = 'FLATERjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
- " '_SYSTEM'" DISPLAY" AND GRANTEE = 'FLATER';" EXECSQLSELECTSQLCOUNT : FROM INFO_SCHEM.TABLE_PRIVILEGES TABLE_SCHEM' < _'
TABLE_SCHEM' <> '_' AND GRANTEE = 'FLATER'END-EXEC MOVE SQLCODE TO SQL-COD
CHCKOK NOT DISPLAYMOVE flag if (int1 NOT = 0) then MOVE 0 TO flag END-IF
COMPUTE int1WHEREGRANTOR DISPLAY"- _" DISPLAY INFO_SCHEM" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND GRANTOR <>
- " '_SYSTEM'" DISPLAY" AND GRANTEE = 'FLATER';" FROM INFO_SCHEMjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 FROM
WHERE SQLCODE SQL-COD AND GRANTEE = 'FLATER'END-EXEC MOVE"int1 should be 0; its is ", int1 PERFORM DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag *This one was a GRANT ALL TO SCHANZLE. Five rows:
*This one was a GRANT ALL TO SCHANZLE. Five rows: *SELECT, INSERT, UPDATE, DELETE, REFERENCES
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.TABLE_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND " GRANTOR' GRANTEE= SCHANZLEjava.lang.StringIndexOutOfBoundsException: Range [72, 73) out of bounds for length 72
- " 'VS1'" DISPLAY"ANDGRANTOR='' AND GRANTEE = 'SCHANZLE'" DISPLAY" AND IS_GRANTABLE = 'NO';" EXECSELECT()INTOi FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE = 'FLATER'ANDTABLE_NAMEVS1
GRANTOR'ANDGRANTEE='java.lang.StringIndexOutOfBoundsException: Range [62, 63) out of bounds for length 62 AND MOVE SQLCODE TO MOVE SQLCODE" ;itsvalueis"int1
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAY"int1 should be 5; its value is ", int1 if (int1 NOT = 5) then*5 times degree of view = 10 MOVE 0 TO flag END-IF
*5 times degree of view = 10
MOVE 0 -" ''" "SELECT COUNT()INTO :int1" DISPLAY" FROM "AND = '';java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
VS1 DISPLAY' SCHANZLE" DISPLAY" AND IS_GRANTABLE = 'NO';" EXECSQLSELECTCOUNT(*) INTO :int1
SQLCODE
CHCKOK AND'' ='' AND IS_GRANTABLE = 'NO'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should MOVE 0TOint1 if (int1 NOT = 10) then" COUNT(* INTO:int1" MOVE 0 TO flag =HU END-IF
*This one was GRANT SELECT TO PUBLIC
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.TABLE_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME =
- " 'PROJ'" DISPLAY =' '" DISPLAY" AND IS_GRANTABLE = 'NO';" EXECSQLSELECT IS_GRANTABLE = 'NO'END-EXEC FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE TABLE_SCHEMint1 ANDifNOT=1 java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 AND IS_GRANTABLE = 'NO'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 END-IF
MOVE" = 'NO';"
EXEC SQLCOUNT) :int1
." DISPLAY" WHERE TABLE_SCHEM = 'PUBLIC'
- " 'PROJ'" DISPLAY" AND GRANTOR = 'HUMOVE SQLCODE TO SQL-COD DISPLAY" AND IS_GRANTABLE NO'"
int1valuejava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
INFO_SCHEM
WHERE TABLE_SCHEM = 0 TO AND GRANTOR = 'HU'AND GRANTEE AND IS_GRANTABLE = 'NO'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 5; its value is ", int1DISPLAY WHEREHU if (int1 NOTAND HUAND" MOVE 0 TO flag END-IF
*GRANT INSERT TO PUBLIC WITH GRANT OPTION
MOVE int1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.TABLE_PRIVILEGES" DISPLAY WHERE=HU TABLE_NAME'
- " 'TESTREPORT'" DISPLAY" GRANTOR ='' AND GRANTEE = 'PUBLIC'" DISPLAY" AND IS_GRANTABLE = 'YES' AND PRIVILEGE_TYPE =
- "'java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME = 'TESTREPORT' AND GRANTOR = 'HU'AND GRANTEE = 'PUBLIC' AND IS_GRANTABLE = 'YES'AND PRIVILEGE_TYPE = 'INSERT' END-EXEC 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
-" TESTREPORT'
COMPUTE int1 = -153 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAYFROMCOLUMN_PRIVILEGES DISPLAY"SELECT(*)INTO:java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
WHERE = TESTREPORT DISPLAYANDGRANTOR ' DISPLAY" AND IS_GRANTABLE = ' ANDIS_GRANTABLE = 'YES'ANDPRIVILEGE_TYPE = 'INSERT'
- " 'INSERT';" EXECSQLSELECTCOUNT(*) INTO : MOVETO
INFO_SCHEM
WHERE TABLE_SCHEM = 'HU if (int1NOT = 3)then AND GRANTOR = 'HU'AND GRANTEE = 'PUBLIC' AND IS_GRANTABLE = 'YES'AND PRIVILEGE_TYPE = 'INSERT' END-EXEC MOVESQL-COD PERFORM CHCKOK" INFO_SCHEM.OLUMN_PRIVILEGES DISPLAY" should be 3 value is " java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
GRANTOR'
D " IS_GRANTABLE< '' OR < END-IF
MOVE 62 TOFROM.COLUMN_PRIVILEGES DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.COLUMN_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME =
- " 'TESTREPORT'" DISPLAY" AND GRANTOR = 'HU' AND (GRANTEE DISPLAY" ORshould be 0 is " nt1
- " 'INSERT');" EXECSQLSELECTCOUNT(*) INTOjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 FROM INFO_SCHEM.COLUMN_PRIVILEGES
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME AND GRANTOR = 'DISPLAY"SELECT COUNT(*) INTO int1java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 OR IS_GRANTABLE <> 'YES'OR PRIVILEGE_TYPE <> 'INSERT') END-EXEC MOVE SQLCODE TO SQL-COD "AND GRANTOR = 'HU';java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 PERFORM CHCKOK
INFO_SCHEM ifint1java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 MOVE 0 TO flag END-IF
*GRANT UPDATE (COL1) ON VTABLE TO FLATER *The syntax for column-specific privileges is hidden in *10.3 <privileges> instead of 11.36 <grant statement>
COMPUTE int1 = DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.TABLE_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME =
- "ANDGRANTOR =''" DISPLAYAND =''" EXECSQLSELECTCOUNT(*) INTO :int1 FROM.TABLE_PRIVILEGES
WHERE TABLE_SCHEM = 'HU'AND TABLE_NAME = 'VTABLE' AND GRANTORMOVE SQL-COD MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 OVE 0 TO flag if (int1 NOT java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVE 0 TO flag " INFO_SCHEMCOLUMN_PRIVILEGES END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1" " FROMINFO_SCHEMCOLUMN_PRIVILEGESjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME =
- " 'VTABLE'" DISPLAYFROM.COLUMN_PRIVILEGES EXECSELECT) :java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 FROM INFO_SCHEM.COLUMN_PRIVILEGES
WHERE java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 AND GRANTOR = 'HU'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOTMOVE0 flag MOVE 0 TO END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAYFROM." "FROM .COLUMN_PRIVILEGES"
- " 'VTABLE WHERETABLE_SCHEM=''AND='F;java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
= HU DISPLAY" AND PRIVILEGE_TYPE = 'UPDATE'AND" DISPLAY" IS_GRANTABLE = 'NO' AND GRANTEE = 'FLATER';" EXECSQLSELECT java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 FROM INFO_SCHEM.COLUMN_PRIVILEGES
TABLE_SCHEM ' AND GRANTOR = 'HU'AND COLUMN_NAME = 'COL1' AND PRIVILEGE_TYPE *Check future grant not yet reflected '' = 'FLATER'END-EXEC
SQLCODE PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = "'BASE_WCOV" MOVE 0 TO flag ( java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 END-IF
*This should not be visible.
COMPUTE = -1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY INFO_SCHEM DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME = 'FF';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE MOVE SQLCODE TO SQL-COD SELECT PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1
int1 SQL() int1 END-IF
GRANTOR =CUGINI DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.COLUMN_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'HU' AND TABLE_NAME = 'FF'; ifint1 = 0
0 TO FROM INFO_SCHEM.COLUMN_PRIVILEGES
WHERE TABLE_SCHEM = ROLLBACK MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then*Check visibility of new grant MOVE 0 TO flag END-IF
*Check future grant not yet reflected
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.TABLE_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'BASE_WCOV'" DISPLAY" AND int1=- EXECSQLSELECTINFO_SCHEM FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE GRANTORCUGINI ''ANDGRANTOR = '' END-EXEC
PERFORM CHCKOK " should be 0; itsvalue is ", if (int1 NOT = 0) then
0 flag END-IF
int1 DISPLAY"SELECT CHCKOK DISPLAY" FROM INFO_SCHEM.COLUMN_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'BASE_WCOV'" DISPLAY" AND GRANTOR = 'FLATER' AND GRANTEE = 'CUGINI';" EXECSQLSELECTCOUNT(*) INTO :int1
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
WHERE ''AND FLATER' = CUGINI END-EXEC MOVETO PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 WHERETABLE_SCHEM ''AND TABLE_NAME if (int1 NOT = 0) then MOVE 0 TO flag END-IF
ROLLBACK;" EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD flag PERFORM CHCKOK DISPLAY" "
*Check visibility of new grant
DISPLAY"GRANT DELETE ON BASE_WCOV TO CUGINI;" EXECSQL GRANT DELETEON BASE_WCOV TO CUGINI END-EXEC '' PERFORM CHCKOK DISPLAY" "
SQLCOUNT* :java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 EXECSQL WORK MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = - CUGINIANDPRIVILEGE_TYPEDELETEANDjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 DISPLAY"SELECT COUNT(*) INTO :int1"MOVETOSQL-COD DISPLAY" FROM INFO_SCHEM.TABLE_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'BASE_WCOV'" DISPLAY" AND GRANTOR = 'FLATER' ANDjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 DISPLAY" AND PRIVILEGE_TYPE = 'DELETE' AND IS_GRANTABLE =
- " 'NO';" EXECSQL" TABLE_SCHEM = 'FLATER' AND TABLE_NAME = FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'BASE_WCOV' AND GRANTOR = 'FLATER'AND GRANTEE = 'CUGINI' AND PRIVILEGE_TYPE = 'DELETE'AND TABLE_SCHEM FLATER = END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAYint1be value,java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 if (int1 NOT = 1) then" should be value is , MOVE 0 TO flag END-IF
COMPUTE int1 = -1 "ROLLBACK WORK;" DISPLAY"FROMINFO_SCHEM.TABLE_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = ' MOVE SQLCODE TOSQL-COD
- " 'BASE_WCOV'"
FLATER" SELECT) : FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE TABLE_SCHEM = 'FLATER'" DELETE ON BASE_WCOV FROM CASCADE;"
BASE_WCOV = FLATER = 'CUGINI'java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73 END-EXECEND-EXEC MOVE SQLCODE TO SQL-COD PERFORM"java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAY"int1 should be 1; its EXECSQLCOMMIT END-EXEC ifint1 =)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 MOVE flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.COLUMN_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = DISPLAY "SELECT() :int1
- " 'BASE_WCOV'" DISPLAY" AND GRANTOR = 'FLATER' AND GRANTEE = 'CUGINI'" DISPLAY""AND = FLATERCUGINI
- " 'NO';" SELECT*INTOint1 FROM INFO_SCHEM.COLUMN_PRIVILEGES
TABLE_SCHEMFLATER 'BASE_WCOV'AND GRANTOR = 'FLATER'AND GRANTEE = 'CUGINI'AND'AND=''
IS_GRANTABLE = 'NO'END-EXEC MOVE SQLCODE TOjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVE"SELECT(*) INTO :int1" END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.COLUMN_PRIVILEGES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
-"BASE_WCOV" DISPLAY" AND GRANTOR = 'FLATER' AND GRANTEE = 'CUGINI TABLE_SCHEM ='' AND TABLE_NAME=java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMN_PRIVILEGES
WHERE CHCKOK 'BASE_WCOV'AND GRANTOR ' 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"ROLLBACK WORK;" EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*Check that revoke also worked
COMPUTE int1 DISPLAY INFO_SCHEM " DISPLAY" FROM INFO_SCHEM.TABLE_PRIVILEGES" DISPLAYDISPLAYF -schema
- " 'BASE_WCOV'" DISPLAY" AND GRANTOR = 'FLATER' AND GRANTEE = 'CUGINI';" "inINFO_SCHEMjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 FROM INFO_SCHEM.TABLE_PRIVILEGES
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'BASE_WCOV' java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 'CUGINI'END-EXEC MOVE SQLCODE "PNUMINT;
CHCKOK DISPLAYEMPNUM KEY, if (int1 NOT = 0) then MOVETOflag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1"SQL WORK DISPLAY" FROM INFO_SCHEM.COLUMN_PRIVILEGES" DISPLAY" WHERE DISPLAY""
- " 'BASE_WCOV'" DISPLAY" AND GRANTOR = 'FLATER' AND GRANTEE = *PRIMARY KEY implies NOT NULL but UNIQUE does not EXECSQLSELECT OVE int1 FROM
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'BASE_WCOV'AND GRANTOR = FLATER = END-EXEC MOVE SQLCODE TO SQL-COD PERFORM java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 DISPLAY"int1 should be 0; its value is ", int1 java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 ififNOTthen MOVE 0 TO flag END-IF
DISPLAY"ROLLBACK WORK;" EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM"'NUM' DISPLAY" "
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0685','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY pco java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 EXECMOVE flag
VALUES('0685','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE SQL-COD ******************** END TEST0685 ******************** ******************** BEGIN TEST0686 ******************* MOVE 1 TO flag
DISPLAY" TEST0686 " ": Primary key enh. is null" DISPLAY"References:" DISPLAY" F# 2 -- Basic information schema" "# Basic manipulation" DISPLAYDISPLAY java.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
FIPS
- " identifiers" DISPLAY" in INFO_SCHEM" DISPLAY" - - - - - - - - - - - - - - - - - - -"
COMPUTE SQLCODE = -1 MOVE"xxxxx"TO SQLSTATE
DISPLAY"CREATE TABLE FEAT16 (" DISPLAY" EMPNUM INT PRIMARY KEY," DISPLAY" PNUM INT UNIQUE);" EXECSQLSQL TABLE (
EMPNUM INT PRIMARY KEY,
PNUM INT UNIQUE) END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK "
DISPLAYEND-EXEC EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*PRIMARY KEY implies NOT NULL but UNIQUE does not
MOVE 0 TO int1 "F 1 -- Multiple schemas per user" DISPLAY"SELECT COUNT(*) INTO :int1" "FROM COLUMNS WHERETABLE_SCHEM =
- " 'FLATER'" DISPLAY FEAT16
- " 'EMPNUM'" DISPLAY" AND IS_NULLABLE = 'NO';" EXECSELECTINTO FROM INFO_SCHEM.COLUMNS WHERE AND TABLE_NAME = 'FEAT16'AND COLUMN_NAME = 'EMPNUM' AND IS_NULLABLE = 'NO'END-EXEC 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
MOVE 0 TO int1 DISPLAYSELECT* int1 DISPLAY"SCHEM_OWNER FLATER;"
- " 'FLATER'" DISPLAY" AND TABLE_NAME = 'FEAT16' AND COLUMN_NAME =
- " 'PNUM'" DISPLAY" AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM" should be ;itsvalue is ",int1 AND TABLE_NAME = 'FEAT16'AND COLUMN_NAME = 'PNUM' ANDMOVE flag MOVE SQLCODE TO SQL-COD PERFORM 0 TO
be if (int1 NOT = 1)DISPLAY ." MOVE 0 TO flag END-IF
"WORK EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD
( = 1)then DISPLAY" ** *** "
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECelse
VALUES('0686','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" dml131.pco *** fail *** " EXECSQL COMPUTE e = errcnt+1
VALUES('0686','fail','PCO') END-EXEC MOVEDISPLAY"=============================java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 COMPUTE errcnt = errcnt END-IF
DISPLAY"================================ ******************** END TEST0687 ********************
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD ******************** END TEST0686 ******************** ******************** BEGIN TEST0687 ******************* MOVE 1 TO flag
" DISPLAY" INFO_SCHEM: Multiple schemas per user" DISPLAY"References:" DISPLAY F# DISPLAY" F# 17 -- Multiple schemas per user" DISPLAY 1-Shortened
- " identifiers" DISPLAY"inINFO_SCHEMjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 DISPLAY" - - - - - - - - - - - - - daccepted."
COMPUTE SQLCODE = -1 MOVE"xxxxx"TO SQLSTATE
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1" DISPLAY" FROM INFO_SCHEM.SCHEMATA" DISPLAY" WHERE *subclasses with 000. This replacement equates valid DISPLAY" SCHEM_OWNER = 'FLATER';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.SCHEMATA
WHERE SCHEM_NAME = 'SHIRLEY_HURWITZ'AND
SCHEM_OWNER = 'FLATER'END-EXEC 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
MOVE 0 TO int1 DISPLAY"SELECT
3 TO DISPLAY" WHERE SCHEM_NAME = 'LEN_GALLAGHER' AND" DISPLAY" SCHEM_OWNER = 'FLATER';" EXECPERFORM norm2 FROM1 BY 1UNTIL > 36 FROM INFO_SCHEM.SCHEMATA
SCHEM_NAME =''AND
SCHEM_OWNER = 'FLATER'END-EXEC MOVE SQLCODE TO SQL-COD
if (int1 NOT = 1) then MOVE 0 TO flag END-IF
DISPLAYCOMMIT EXECTO MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECINSERTINTO.TESTREPORT
VALUES('0687','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else
SPLAY . ** fail EXECSQLINSERTINTO HU.TESTREPORT
('068''fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY============================
EXECSQL COMMIT WORK END-EXEC MOVE ******************** END TEST0687 ******************** **** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
*Test SQLCODE and SQLSTATE for normal completion.
CHCKOK. DISPLAYSQLCODEits java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66 DISPLAYEXIT-NOSUBCLASS PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (SQLCODE NOT = 0 OR NORMSQ NOT = "00000") then MOVE 0 TO flag END-IF if (NORMSQ = "00000"AND NORMSQ NOT = SQLSTATE) then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF
.
NOSUBCLASS.
*This routine replaces valid implementation-defined *subclasses with 000. This replacement equates valid *implementation-defined subclasses with the 000 value *expected by the test case; otherwise the test will fail. *After calling NOSUBCLASS, NORMSQ will be tested * SQLSTATE will be printed.
MOVE SQLSTATE TO NORMSQ
MOVE 3 TO norm1 *subclass begins in position 3 of char array NORMSQ *valid subclass begins with 5-9, I-Z, end of ALPNUM table PERFORMVARYING norm2 FROM 14 BY 1 UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
*Quit if NORMSQ is unchanged. Subclass is not impl.-def. *Changed NORMSQ means implementation-defined subclass, *so proceed to zero it out, if valid (0-9,A-Z) if (NORMSQ = SQLSTATE) then GOTO EXIT-NOSUBCLASS END-IF
MOVE 4 TO norm1 *examining position 4 of char array NORMSQ *valid characters are 0-9, A-Z PERFORMVARYING norm2 FROM 1 BY 1 UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
MOVE 5 TO norm1 *valid characters are 0-9, A-Z *examining position 5 of char array NORMSQ PERFORMVARYING norm2 FROM 1 BY 1 UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
*implementation-defined subclasses are allowed for warnings *(class = 01). These equate to successful completion *SQLSTATE values of 00000. *Reference SQL-92 4.28 SQL-transactions, paragraph 2
if (NORMSQX(1) = "0"AND NORMSQX(2) = "1") then MOVE"0"TO NORMSQX(2) END-IF
.
EXIT-NOSUBCLASS. EXIT.
[ Verzeichnis aufwärts0.23unsichere Verbindung
Übersetzung europäischer Sprachen durch Browser
]