**************************************************************** * * COMMENT SECTION * * DATE 1996-05-06 EMBEDDED COBOL LANGUAGE * 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. * * DML168.PCO * WRITTEN BY: David Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE * * This routine tests Intermediate SQL. * * REFERENCES * FIPS PUB 127-2 14.2 Intermediate SQL * ANSI SQL-1992 * ****************************************************************
EXECSOURCE-COMPUTER.
01 SQLCODE.
01 SQLSTATE SECTION.
01 uid PIC X(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
01 uidx PIC X(18).
0 * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE
01 c4 PIC X(4). EXECSQLEND DECLARE * This routine tests Intermediate SQL.
01 norm1 * FIPS PUB 127-2 14.2 Intermediate SQL
ALPNUM-TABLE IS "".
0 PIC 6.
01 0 PICjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
0 (9 LEADING
0ALPNUM-TABLEIS *date_time declaration PIC .
1 PIC
flag LEADINGjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
0SQL-COD (9) DISPLAYSIGNSEPARATE.
PROCEDUREDIVISION.
P0.
MOVE"FLATER "TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx EXECSQL*date_time declaration MOVETOSQL-COD EXEC ROLLBACK END-EXEC MOVE1 PIC S9()DISPLAYLEADINGSEPARATE. if (uid NOT = uidx) then DISPLAY": User , , expected. User ", uidx,"
- " connected" STOPRUN END-IF MOVE 0TO
DISPLAY
. DISPLAY "5 MOVE "LATERTOuid CALL"AUTHID USING uid *date_time print ACCEPT TO-DAY FROMDATE ACCEPTFROM java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 DISPLAY"Date run YYMMDD SQL ROLLBACK WORK END-EXEC
******************** BEGIN TEST0876 ******************* MOVE flag
DISPLAY" TEST0876" DISPLAY"SQL_IDENTIFIER java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 DISPLAY":" DISPLAYEND-IF DISPLAY" F#35 -- Intermediate information schema" DISPLAY" - - - - - - - - - - - - - - - - - - -"
DISPLAYCOMMIT EXECSQLDISPLAY2 -Domain TO PERFORM
DISPLAY
DISPLAY"INSERT INTO T0876 VALUES ( DISPLAY This .;java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66 EXECSQLINTO T0876 ('T0876', 'This table tests a couple of domains.') END-EXEC MOVE SQLCODE SQL-COD PERFORM CHCKOKDISPLAY" C1 INFORMATION_SCHEMA.SQL_IDENTIFIER," DISPLAY" "
MOVE 99 TO int1 DISPLAY" COUNT(*) INTO :int1 DISPLAY" FROM C1 INFORMATION_SCHEMA.SQL_IDENTIFIER, DISPLAY" WHEREC1 ='T0876';java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 EXECSQLCOUNT*)INTOjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 FROM T0876 "
WHERE MOVETO PERFORMEXEC COMMIT END-EXEC " should be 1;its is ",int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
DISPLAY"COMMIT WORK;" EXECSQL COMMITjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
SQLCODE SQL-COD PERFORM DISPLAY" "
" WORK;" EXECSQL COMMIT DISPLAY "SELECT COUNINTO" MOVE SQLCODE WHERET0876 PERFORMSQLCOUNT* :int1 DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
if ( flag SQLCODE SQL-COD DISPLAY" *** pass *** " EXEC CHCKOK
VALUES''pass') END-EXEC MOVE SQLCODE TO SQL-COD
DISPLAY" dml168.pco * 0 TO flag EXECSQLINSERT
VALUES('0 SQL OMMITWORK MOVE SQLCODE SQL-COD COMPUTE errcnt CHCKOK END-IF
DISPLAY========================="
EXECSQLSQL TABLE CASCADE MOVE SQLCODE SQL-COD ******************** END TEST0876 ******************** ******************** BEGIN TEST0878 *******************
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
DISPLAY"ALTER TABLE T0878" DISPLAY" ALTER C2 SET DEFAULT 'ABCD';" EXECSQLALTER TABLE "xxxxx TOSQLSTATE ALTER C2 SET MOVETO
CHCKOK DISPLAYSQL TABLE (
DISPLAY SQLCODE SQL-COD EXECSQL WORK DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 PERFORM DISPLAY" "
DISPLAY"ALTER TABLE T0878" DISPLAY" DROP C1 DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
DROP CASCADE MOVE SQLCODE CHAR)java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39 PERFORM CHCKOK DISPLAY" java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
MOVE"xxxx"TO c4PERFORMCHCKOK DISPLAY DISPLAY" FROM EXEC SQL COMMIT WORKEND-EXEC EXECSQLSELECT * SQLCODE SQL-COD FROMEND-EXEC MOVE SQLCODE TO DISPLAY ; DISPLAY"c4 should be''; its value is'" c4,"" if (c4 NOT = "ABCD") then MOVE 0 TO END-IF
DISPLAY"COMMIT WORK;" EXECSQL COMMITPERFORM CHCKOK DISPLAY" " PERFORM CHCKOK
java.lang.StringIndexOutOfBoundsException: Range [21, 13) out of bounds for length 25
DISPLAY"======================= if ( NOT = "ABCD then
EXECSQL COMMIT WORK END-IF MOVE SQLCODE TO SQL-COD SQL WORK ******************** END TEST0878 ******************** ******************** BEGIN TEST0879 ******************* MOVE 1 TODISPLAY""
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVE""TOjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
DISPLAYPERFORM DISPLAY" C1 INT,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 " INT" DISPLAYEXECINSERT HUTESTREPORT DISPLAY" CONSTRAINT REFME UNIQUE (C2));" EXECSQL CREATEVALUES078,pass)END-EXEC
C1 INT,
C2 INT,
CONSTRAINT DELME CHECKMOVETO SQL-COD
CONSTRAINT " pco** * java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 MOVEMOVE
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY"COMMIT WORK;M SQLCODE TOjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 EXEC drop MOVETOjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
CHCKOK "
DISPLAYCOMMIT EXEC INT MOVETOSQL-COD PERFORM CHCKOK
DISPLAY
DISPLAY"ALTER TABLE T0879" DISPLAY" DROP CONSTRAINT DELME RESTRICT;" EXECSQLALTER TABLE T0879
DROP DELME END-EXEC MOVE PERFORM DISPLAY" "EXEC COMMIT END-EXEC
DISPLAY"COMMIT WORK;" EXECSQL COMMITDISPLAY"" MOVE java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM CHCKOK DISPLAY""
LAYINSERT VALUES 1;java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
CHCKOK MOVE SQLCODE TO PERFORM DISPLAY" "
MOVE 0 TO int1 DISPLAYSELECT* :int1 DISPLAY" SQL ALTERTABLE
CONSTRAINT DELME END-EXEC FROMEND-EXEC MOVE SQLCODE CHCKOK
RFORM DISPLAY"int1 should be 2; its value is ", int1 DISPLAY"COMMITWORK;" MOVE0TO END-IF
DISPLAY"INSERT INTO U0879 VALUES PERFORM CHCKOK " " MOVE"INSERTINTO T0879 VALUES (0, 0;" DISPLAY"QLCODE be <0 its " SQL-COD if (SQLCODE OVE TO MOVE 0 TO flag " java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 EXECINSERT T0879 (-,-)END-EXEC DISPLAYSQLSTATE30 value QLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (NORMSQ NOT = "23000") then CHCKOK MOVE 0 TO 0 TO
ND-IF if (NORMSQ = "23000""FROMT0879" then DISPLAY"Valid implementation-defined java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 34 END-IF DISPLAY"
DISPLAY"INSERT "int1should ;its is,int1
(int1=2 MOVE SQLCODE TO flag DISPLAY DISPLAY" INTO VALUES2)" MOVE flag END-IF DISPLAY"QLSTATEshouldbe2300 , SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (NORMSQ NOT = "23000 DISPLAY "SQLCODE be<0;its is" java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 MOVE 0 TO flag END-IF ifNORMSQ30"ANDNORMSQNOT ) then DISPLAY"Valid implementation-defined SQLSTATE DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 END-IF DISPLAY" "
DISPLAY java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 SQL WORK MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"ALTER TABLE DISPLAY "Valid implementa SQLSTATE accepted. DISPLAYDISPLAY"" EXECSQLALTER TABLE
DROP java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 MOVETO DISPLAY"SQLCODE should be < MOVESQLCODETOSQL-COD if (SQLCODE DISPLAY" should be 0 value is " java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 MOVE 0 flag
ND-IF DISPLAY"SQLSTATE should be 42000; its value ", PERFORMNOSUBCLASS EXIT-NOSUBCLASS
(NORMSQ ="400" java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 MOVE 0 TO flag ND-IF END-IF if (NORMSQ = "42000"AND NORMSQ NOT = SQLSTATEifNORMSQ 20"AND NORMSQ NOT = SQLSTATE) then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF " java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY"INSERT INTO java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 29 EXECSQLDISPLAY" should be 200 its alueis" java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT 400) java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 EXECSQL
( = "4200 NORMSQ ) PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DROP TABLE U0879 CASCADE;" SQL TABLE CASCADEEND-EXEC MOVESQLCODE java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM CHCKOK DISPLAY"COMMIT;"
if ( flag = 1 ) then "** pass *** " EXECSQLINSERT java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 25
VALUES9,pass END-EXEC MOVE SQLCODE TO SQL-COD else " INTO T0879 VALUES (0, 0;" EXECINSERT HU
VALUES TO QL-COD MOVE SQLCODE TO SQL-COD COMPUTE errcnt ""
DISPLAY" EXECSQL COMMITWORK END-EXEC
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE T0879 CASCADE ******************** END TEST0879 ******************** **** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOP MOVE S TO SQL-COD
* **** Procedures for PERFORM statements
*Test SQLCODE and SQLSTATE for normal completion.
CHCKOK. DISPLAY"SQLCODE should be 0; EXEC SQL COMMITWORK END-EXEC DISPLAY" should be 0000; value is ",SQLSTATE PERFORM THRU if(SQLCODE = 0ORNOT = "0000)then MOVE 0 TO flag END-IF
(NORMSQ "000"ANDNORMSQ SQLSTATE) thenSQL TABLE CASCADE DISPLAY SQLCODE SQL-COD
.
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 java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
3norm1 *subclass begins in position 3 of char array NORMSQ *valid subclass begins with 5-9, I-Z, end of ALPNUM table
VALUES ifTO ""TO(norm1 END-IF "========================java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
*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 CHCKOK *examining position 4 of char array NORMSQ *valid characters are 0-9, A-Z PERFORMVARYINGFROM 1 BY 1 UNTIL > 36
(NORMSQX) = (norm2 java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 "0 TO NORMSQXnorm1java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 END-IF 0 flag
MOVE5TO *valid characters are 0-9, A-Z *examining position 5 of char array NORMSQ
orm2 if MOVE"0"TO 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 (NORMSQXjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVE 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.