IDENTIFICATION* X/Open SQL VALIDATION TEST SUITE V6.0 * WRITTEN BY: E. Pratt ENVIRONMENTDIVISION* CONFIGURATION PROGRAM-ID. XOP719.PROGRAM-ID. * SECTION 5.3.9
Xjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 DATADIVISION.
* conformance to theSQL .
* Embedded SQL COBOL (file "XOP719.PCO")
* Copyright 1994, 1995 X/Open Company Limited
* All rights reserved. *Log on as user XOPEN2 * DISCLAIMER: * This program was reviewed by employees of NIST for * conformance to the SQL standards. * NIST assumes no responsibility for any party's use of * this program.
* X/Open and the 'X' symbol are registered trademarks of X/Open Company * Limited in the UK and other countries.
**************************************************************** * * COMMENT SECTION * END-IF * X/Open SQL VALIDATION TEST SUITE V6.0 * * XOP719.PCO * WRITTEN BY: E. Pratt * * GRANT ALL with optional PRIVILEGES omitted. * * REFERENCES * X/Open CAE SQL * SECTION 5.3.9 * * <embedded SQL C program> * * DATE PROGRAM LAST CHANGED 1/11/94 * ****************************************************************
*Must be run under authorization identifier XOPEN2
*This test program must be run before xop720.pco, *xop721.pco, xop722.pco, xop723.pco
EXECSQL BEGIN java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 01SQLCODEPICDISPLAY pco,.pco java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 01 SQLSTATE PIC X(5ALLPRIVILEGES
(. 01 ch1 PIC X( "- -- -- java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
uid PIC X(8) 01 uidx X33) 01DISPLAY**GRANTALLON.;"
01 errcnt PIC"** WHERE B1= 'D' java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 *date_time declaration 9(6). 01 java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0 01errflgjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
PROCEDURE*only for SELECT and CREATE
P0E java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 38
*Log on as user XOPEN2
XOPEN2 ifjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
"not 0TO EXECEND-IF
* if (uid NOT = uidx) then DISPLAY": "uid expected User", uidx "WHEREB1'D END-EXEC
- " connected"
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 21 END-IF zero out if valid (-java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 0 1TO
- "COBOL, >36 DISPLAY "59-byte ID" DISPLAY"TEd Version #" *date_time print ACCEPT TO-DAY FROM java.lang.StringIndexOutOfBoundsException: Range [30, 34) out of bounds for length 19 ACCEPT THE-TIME java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MOVEMOVE1TOjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
******************** BEGIN TEST0719 *******************
java.lang.StringIndexOutOfBoundsException: Range [19, 20) out of bounds for length 19 DISPLAY" java.lang.StringIndexOutOfBoundsException: Range [13, 1) out of bounds for length 60
DISPLAY" *(class = 01). These equate to successful completion TO *SQLSTATE values of 00000.
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 67 DISPLAY" java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 0 " - - java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 0 "* DISPLAY"0 java.lang.StringIndexOutOfBoundsException: Range [57, 54) out of bounds for length 68 DISPLAYPERFORM P213java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 "**java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 DISPLAY"*** WHERE MOVE 0
java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 59 "========java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*GRANT ALL with optional PRIVILEGES omitted, grantor
0TOjava.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
1TO flag
*Clear the tables first FROM XOPEN1.AA END-EXEC MOVESQLCODETO SQL-COD SQLDELETE . END-EXEC MOVESQLCODETO SQL-COD SQLFROM .CCCEND-EXEC MOVESQLCODETO SQL-COD EXECSQLCOMMITWORKEND-EXEC TO
*Load data into the working database tables EXECDISPLAY"xop719p * fail * END-EXEC MOVETOSQL-COD EXECSQLINSERT"" END-EXEC MOVESQLCODETO SQL-CODSQLCODETO EXECSQLINSERTINTO XOPEN1.AAA VALUES('AG' END-EXEC MOVESQLCODE EXECSQLINSERTINTO XOPEN1.AAA VALUES('AJ'*subclasses with 000. This replacement equates valid END-EXEC MOVESQLCODETO SQL-COD
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0 END-EXEC MOVESQLCODEMOVE14TOjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 EXECSQL . (' BE, BF) END-EXEC MOVESQLCODETO SQL-COD SQLINSERTINTO XOPEN1.BBB VALUES('BG', 'BH', 'BI') END-EXEC MOVESQLCODETO SQL-COD EXECSQLINSERTINTO XOPEN1.BBB VALUES('BJ', 'BK', 'BL') END-EXEC MOVESQLCODETO SQL-COD INTO XOPEN1. 'CA', '', '')
MOVESQLCODETO SQL-COD EXECSQLINSERTINTO XOPEN1.java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 19 *Changed NORMSQ means implementation-defined subclass, MOVESQLCODETO SQL-COD EXECSQLINSERTINTO XOPEN1.CCC VALUES('java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 END-EXEC MOVESQLCODETO SQL-COD EXECSQLINSERTINTO XOPEN1.CCC
DISPLAY"============================================== END-IF *Grantor holds all privileges, but has grant option *only for SELECT and CREATE MOVE"x"TO SQLSTATE EXECSQLMOVE1TO
GRANT OPTION END-EXEC
VE SQLCODETO SQL-COD PERFORM CHCKOK if*SQLSTATE values of 00000. if((1 = 0'(2)= 1)then END-IF END-IF
EXECSQLCOMMIT WORK END-EXEC MOVESQLCODETO SQL-COD DISPLAY"======java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0 *Grantor holds SELECT, INSERT, DELETE with GRANT OPTION, MOVE"x"TO SQLSTATE EXECSQL GRANT DISPLAY" should be 00000; its value is " SQLSTATE
java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 36 PERFORM CHCKOK NOT = "0000 OR SQLCODE NOT = 0) then DISPLAY"*** Problem found (TEST STEP NUMBER 2) ! *** "
= + 1 END-IF EXEC java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 19 TO SQL-COD
DISPLAY"=== *Grantor holds SELECT, INSERT, DELETE with GRANT OPTION, MOVE"x"TO SQLSTATE MOVE" "TO ch1 *CREATE VIEW XOPEN2V AS SELECT B1, B2, B3 FROM XOPEN1.BBB EXECSQLSELECT B2 INTO :ch1 FROM XOPEN2V WHERE B1 = 'BD'END-EXEC MOVESQLCODETO SQL-COD DISPLAY"SQLSTATE should be 00000, it is ", SQLSTATE DISPLAY"ch1 should be BE, it is ", ch1 PERFORM NOSUBCLASS THROUGH P213. if (NORMSQ2 NOT = "00000"OR ch1 NOT = "BE" ) then DISPLAY"*** Problem found (TEST STEP NUMBER 3) ! *** " COMPUTE errflg = errflg + 1 END-IF EXECSQLCOMMIT WORK END-EXEC MOVESQLCODETO SQL-COD
DISPLAY"=================================================" *Grantor holds INSERT, SELECT only without GRANT OPTION *Expect a warning for no privileges granted below MOVE"x"TO SQLSTATE MOVE"GRANT ALL ON XOPEN1.CCC TO XOPEN3"TO HCV EXECSQL PREPARE XOP719A FROM :HCV END-EXEC MOVESQLCODETO SQL-COD EXECSQL EXECUTE XOP719A END-EXEC MOVESQLCODETO SQL-COD DISPLAY"SQLSTATE should be 01007, it is ", SQLSTATE
if (SQLSTATE NOT = "01007") then DISPLAY"*** Problem found (TEST STEP NUMBER 4) ! *** " COMPUTE errflg = errflg + 1 END-IF EXECSQLCOMMIT WORK END-EXEC MOVESQLCODETO SQL-COD *No ROLLBACK WORK;-programs follow on from this one e.g. *xop720.pco, which require the above grants to exist
DISPLAY"number of errors detected is = ", errflg " " DISPLAY"### maximum number of errors is 4 ###"
******************** END TEST0719 *******************
****** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
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 SQLSTORE *subclass begins in position 3 of char array NORMSQ MOVE3TO norm1 MOVE14TO norm2 PERFORMUNTIL norm2 > 36 if (NORMSQ(norm1) = ALPNUM3(norm2)) then MOVE'0'TO NORMSQ(norm1) END-IF ADD1TO norm2 END-PERFORM MOVE SQLS2 TO NORMSQ2 if (NORMSQ2 = SQLSTATE) then GOTO P213 END-IF *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)
MOVE4TO norm1 *examining position 4 of char array NORMSQ MOVE1TO norm2 PERFORMUNTIL norm2 > 36 if (NORMSQ(norm1) = ALPNUM3(norm2)) then MOVE'0'TO NORMSQ(norm1) END-IF ADD1TO norm2 END-PERFORM MOVE5TO norm1 *examining position 5 of char array NORMSQ MOVE1TO norm2 PERFORMUNTIL norm2 > 36 if (NORMSQ(norm1) = ALPNUM3(norm2)) then MOVE'0'TO NORMSQ(norm1) END-IF ADD1TO norm2 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 (NORMSQ(1) = '0'AND NORMSQ(2) = '1') then MOVE'0'TO NORMSQ(2) END-IF MOVE SQLS2 TO NORMSQ2.
P213.
*Test SQLCODE and SQLSTATE for normal completion
CHCKOK. MOVE1TO flag DISPLAY"SQLCODE should be '0'; its value is ", SQL-COD DISPLAY"SQLSTATE should be 00000; its value is ", SQLSTATE
PERFORM NOSUBCLASS THROUGH P213. if (SQLCODENOT = 0OR NORMSQ2 NOT = "00000") then MOVE0TO flag END-IF if (flag = 1AND NORMSQ2 NOT = SQLSTATE) then DISPLAY"Valid implementation defined SQLSTATE accepted." 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 und die Messung sind noch experimentell.