**************************************************************** * * COMMENT SECTION * * DATE 1994/8/30 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. * * DML135.PCO * WRITTEN BY: David W. Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE * * This program tests multiple TSQL features together. * * REFERENCES * FIPS PUB 127-2 14.1 Transitional SQL * ANSI SQL-1992 * ****************************************************************
EXECSQL BEGIN DECLARE SECTIONEND-EXEC
01 SQLCODE * NIST assumes no responsibility for any party's use of
01 SQLSTATE PIC X(5).
01 uid PIC X(18).
01 uidx PIC X(18).
01 int1 PIC S9 * WRITTEN BY: David W. Flater
01 int2 PIC S9(9) *
01 tchar *
01 longst PIC X(240).
01 tname PIC X(18).
01 ttype PIC X(10).
01 cname PIC X(18).
01 indic1 PIC S9(4) DISPLAYSIGNLEADINGSEPARATE.
01 flt1 PIC* ANSI SQL-1992
01 emnum PIC X(3).
01 ename PIC X(20).
01 city PIC**************************************************************** SQLEND DECLARE SECTIONEND-EXEC
01 norm1 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 norm2 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 ALPNUM-TABLE VALUEIS "01234ABCDEFGH56789IJKLMNOPQRSTUVWXYZ".
5 PIC X OCCURS36 TIMES 1 SQLSTATE X(5)
0 NORMSQ01 PIC X(18).
05NORMSQX X 5 TIMES
01 errcnt 1int2(9)DISPLAYLEADINGSEPARATE *date_time declaration
01 TO-DAY PIClongst4)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
0 PIC(.
01 flag PICX3)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
0 PIC(9SIGN .
PROCEDUREPIC(9 LEADING.
P0
MOVE"TOuid CALL" USING uid MOVEPIC 36 IMESNORMSQ5NORMSQX 5 . SQLINTO: HUjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
SQLCODE EXECSQLflag()DISPLAYLEADING.
SQLCODE if DISPLAY .
-"java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 STOPRUNMOVE , uidx END-IF MOVE 0 TO errcnt
DISPLAY SQL,.,Embedded
SQLCODE SQL-COD
5-byte DISPLAY"TEd Version #" *date_time print ACCEPT TO-DAY FROMDATE ACCEPT THE-TIME RUN DISPLAY 0 errcnt
******************** BEGIN TEST0692 ******************* MOVE 1 TO flag
DISPLAYDISPLAY DISPLAY TEd FROM java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 DISPLAYF - SQL DISPLAY3manipulation DISPLAY" Fjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
5 identifiers "F 1 -PRIMARYKEY enhancementjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 DISPLAY" F F#5- " DISPLAY" F# 22 -- Explicit defaults" DISPLAY" F# 2 DISPLAY #1 -deleteactionsjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 DISPLAY #2 "
COMPUTE SQLCODE = -1 COMPUTE = -1
DISPLAY"CREATE DISPLAYPNUM( KEY,java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 DISPLAY" PNAME CHAR(20),DISPLAY"PNAME(20),java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 DISPLAYPTYPE6 'Code'" DISPLAY" BUDGET DECIMAL(9) DEFAULT 10000," DISPLAYCITY5 'Berlin'" EXEC CREATEProj
P CHAR KEY
PNAME CHAR CHAR
CHAR 'Code,
BUDGET DECIMAL(9) DEFAULT 10000,
CHAR 'Berlin' MOVETO PERFORM DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY ,* """" DISPLAYSQL"PTypes"("", NUM DISPLAY" GROUP BY PTYPE;"
pes", NUM java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 SELECTCOUNT)FROM"Proj"
GROUP BY PTYPE END-EXEC MOVESQLEND-EXEC
CHCKOK DISPLAY" "
DISPLAY"COMMIT; PERFORMCHCKOK EXECSQL" java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 SQL VIEWAS DISPLAY" "
CREATE DISPLAY" NUM >1END-EXEC DISPLAY" WHERE NUM > 1;" SQL VIEWAS SELECT *P CHCKOK
WHERE NUM MOVE SQLCODE EXEC SQL COMMIT PERFORM CHCKOK DISPLAY" "
DISPLAY"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 EXECSQL COMMIT END-EXEC MOVE SQLCODE TO SQL-COD PERFORMCHCKOK DISPLAYDISPLAY" ""Proj"" ON DELETE CASCADE"
DISPLAY"CREATE TABLE ""Works"" (" DISPLAY"EMPNUMCHAR(3)" DISPLAY" PNUM CHAR(3 SQL CREATE "Works java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
DISPLAY " ""Proj"" ON DELETE CASCADE," DISPLAY" HOURS DECIMAL(5)," DISPLAY" PRIMARY KEY (EMPNUM,PNUM));" EXECSQL"Proj"ONDELETE,
EMPNUM CHAR(3),
PNUM(3)
REFERENCES "Proj"ONDELETE CASCADE,
HOURS DECIMAL5)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
PRIMARY KEY (EMPNUM,PNUM)) END-EXEC MOVE SQLCODE SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT;"
MOVE SQLCODE TO SQL-COD
MOVETO DISPLAY""
DISPLAY"CREATE VIEW ""PStaff"" (PNUM, NUM) AS" DISPLAYSELECTFROMWorks DISPLAY" WHERE HOURS >= 20" DISPLAY" GROUP BY PNUM;" EXECSQLjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
" BY ;"
W HOURSjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
GROUP BY HOURS0 MOVE SQLCODE SQLCODESQL-COD
CHCKOK
DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY"COMMIT;" EXECSQL COMMIT END-EXEC MOVETO PERFORM
ISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY"INSERT INTO ""Proj""" DISPLAYS FROM" EXECINSERT Proj SELECT Hu END-EXEC
SQLCODEjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM DISPLAY" '' FROB,)"
DISPLAY"INSERT INTO ""Works""" DISPLAY * Hu
CHCKOK SELECTDISPLAY"" MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13511 CURSORjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 DISPLAY" SELECT * FROM PTYPES ORDER BY DISPLAY "SELECT HuWorks EXEC DECLARE CURSOR FOR SELECTSELECTFROM.WorksEND-EXEC
DISPLAY"OPEN C13511 PERFORM CHCKOK EXECSQLOPENEND-EXEC MOVE SQLCODE TO
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
MOVE"xxxxxx"TO tchar COMPUTE int1 = -1 DISPLAY"FETCH C13511 INTO :tchar,
C13511int1
SQLCODE java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM CHCKOK DISPLAYTest" "'" DISPLAYCOMPUTE = -1 Test int1 )then
java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
MOVE"xxxxxx"TO tchar COMPUTE int1 = -1 DISPLAY"FETCH C13511 INTO :tchar, :int1;" EXECSQL FETCHif( NOT = Test int1 2 then MOVETO PERFORM
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
tchar " should be ;itsvalueis" java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 if( NOT Design NOT)then MOVE 0 TOMOVETO END-IF
MOVE"xxxxxx"TO tchar COMPUTE int1 = -1 DISPLAYFETCH:;java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 EXECSQL FETCH ( NOT Design NOT 3)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
SQLCODEjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
DISPLAY int1
tchar "'" " should be 4 value is " int1 if (tchar NOT = "Code "OR int1 NOT = 4) then MOVETO
"tcharshould be' '; itsvalueis',java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
FETCH :, :int1 MOVE= int1 DISPLAY 0 flag DISPLAY tchar PERFORM THRU if (SQLCODE SQLCODE
0 flag END-IF PERFORM THRU then
Valid"
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 DISPLAY" "
DISPLAY"CLOSE C13511;" EXEC java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 MOVE SQL-COD PERFORM MOVE S TO
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
*Grouped dynamic cursor over a grouped view
EXEC
OVE SQLCODE SQL-COD MOVETO SQL-COD SELECT, COUNT* FROM""' || 'GROUP BYNUMORDERBY NUM'
) END-EXEC' GROUP BY NUM ORDER BY NUM' MOVETO EXECSELECTINTOFROMEND-EXEC MOVETO
DISPLAY=" ""
DISPLAY"=""",longst
E longst MOVETO
CHCKOK
CHCKOK
DISPLAY"DECLARE CURSOR FOR S13512;java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 EXECDISPLAY" C13512 CURSOR FOR S13512;"
DISPLAY"OPEN C13512;" EXECSQLOPEN" C13512;"
SQLCODE java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM CHCKOK DISPLAY" "
COMPUTE int1 COMPUTE int2 EXEC SQL FETC INTO, :int2 DISPLAY CHCKOK EXEC int1 MOVE ;value PERFORMjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAY" C13512 INTO :int1 int2" DISPLAYint2 " java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 ifint1 NOT=2 java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
0 O java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29 END-IF
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 COMPUTE int2 =1 DISPLAYC13512 EXECSQLEXEC FETCH :, :int2
SQLCODE PERFORM CHCKOKjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAYshouldjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
D "int2 be 2; value is if (int1 M 0 TO MOVE 0 TO END-IF
COMPUTE int1 SQLCODE SQL-COD
1 DISPLAY"FETCH C13512 INTO SQLSTATEshould 20 ,java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 EXEC ( NOT0 NORMSQ00" MOVE SQLCODE 0 TO PERFORM CHCKOK DISPLAYint1 ,int1 DISPLAY"int2 should be 1; its value is java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 if (int1 NOT = 4 OR int2 NOT = 1) java.lang.StringIndexOutOfBoundsException: Range [0, 57) out of bounds for length 0 MOVE DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 END-IF
DISPLAY"FETCH C13512 INTO :int1, :int2;" EXECSQL FETCH C13512 INTO :int1, :int2 END-EXEC MOVETO java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 DISPLAY"SQLCODE should be SQLCODE TO SQL-COD DISPLAY"QLSTATEshouldbe020;itsvalueis" java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
(SQLCODE = 10 ORNOT="200"then MOVE flag END-IF
( = "20 NOT ) then " " END-IF DISPLAY" "
"CLOSE C13512;" EXECSQLCLOSE C13512 END-EXEC MOVES TO PERFORM
D " "
*Cascaded delete -- ditch all that costly Design work
DISPLAY"DELETE (tcharNOT="" ORint1NOT = )then EXECSQLDELETEFROM"Proj" WHERE PTYPE = 'Design' END-EXEC MOVE SQLCODE xxxxxx PERFORM int1java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 DISPLAY"
MOVE"xxxxxx"TO tchar COMPUTE int1 = -1 DISPLAYFETCH INTO :tchar int1 EXECSQLiftchar Code int1 MOVE SQL-COD PERFORM CHCKOK DISPLAY"tchar should be ' EXEC SQLFETCH C13511 INTO:tcharint1END-EXEC "'" DISPLAY"int1 should be 2 SQLCODEshouldbe 0; "should,java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 if (tchar NOT flag
0TO END-IF
MOVE"xxxxxx"TO tchar END-IF DISPLAY"FETCHjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 EXEC SQLCODE MOVE SQLCODE java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
CHCKOK DISPLAY"tchar MOVESQLCODE TO SQL-COD
tchar CHCKOK DISPLAY"int1 should be 4; its java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if (tcharFETCH:;java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 MOVE flag END-IF
DISPLAY"FETCH C13511 INTO :tchar, :int1;" CHCKOK EXEC tchar MOVE" should be ;itsvalueis" DISPLAY 10 s" java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 DISPLAY"SQLSTATE should be 0200 java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 PERFORM = 1
( NOT10ORNOT020" MOVE 0 TO FETCH :,int2
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 if"int2 be 1;its value is,
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 DISPLAY END-IF DISPLAY"
DISPLAY"CLOSE C13511;"
C13511 MOVE SQLCODE " should be 0;itsvalue is" java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 PERFORM DISPLAY" "
DISPLAY"OPEN java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 EXECOPEN java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 MOVE SQLCODE PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 COMPUTE = -1 DISPLAY C13512 SQLINTO, int2 DISPLAY;
CHCKOK DISPLAYshouldis DISPLAY"int2 should be 2; its value is ", int2 CHCKOK if(int1 ORNOT)then MOVE 0 TO flag END-IF
COMPUTE int1 "DROP TABLE ""Proj"" CASCADE" COMPUTE = -1 DISPLAY SQLCODE EXECSQLDISPLAY" MOVE SQLCODE TO PERFORM CHCKOK DISPLAYint1 ,java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 DISPLAY"int2 should be 1; its value is ", int2 " "
( NOT= 4 ORNOT )then MOVE flag
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
DISPLAY"FETCH C13512 INTO :int1, EXECSQL FETCH C13512 COMMIT
SQLCODE DISPLAY"SQLCODEPERFORMCHCKOK DISPLAY"SQLSTATE should be 020java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
NOSUBCLASS if (SQLCODE NOT('6'pass
0TO
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 if (NORMSQ INSERT HU then('062,fail'PCO DISPLAY SQLSTATE END-IF DISPLAY" "
EXECSQLDISPLAY TABLE_SCHEM)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 MOVE SQLCODE TO SQL-COD ******************** END TEST0692 ******************** ******************** BEGIN TEST0693 ******************* MOVE 1 TO flag
CREATIONTIMES DISPLAY" "" TO java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 EXECEXEC FETCH
(', TABLESCOLUMNS,) END-EXEC MOVE SQLCODE TO SQLCODE SQL-COD PERFORM DISPLAYDISPLAYvalue
DISPLAY"DECLARE C13521 CURSOR FOR" DISPLAY"SELECT TABLE_NAME, TABLE_TYPE,COLUMN_NAME"
0 TO
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 DISPLAY" ORDER BY TABLE_NAME, COLUMN_NAME"
SPLAYFOR ; EXECSQL DECLARE C13521END-IF SELECTifcname = TABLE_NAMEjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
EXTRACT FROMCREATE_TIME
E ORDERBY TABLE_NAME (indic1 =-)then FORREAD ONLY END-EXEC
DISPLAY"OPEN C13521;" EXECjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
xxxxxxxxxxxxxxxxxx
FETCH
,,: int1
MOVE int1 MOVE 99 TO :, :ttype,int1
xxxxxxxxxxxxxxxxxxtname MOVE"xxxxxxxxxx"TO ttype CHCKOK MOVE"xxxxxxxxxxxxxxxxxx"TO'tname' DISPLAY"FETCH C13521"
DISPLAY ;java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 EXECNOT) INTO flag MOVE SQLCODE ( NOT"java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 PERFORMNOTthen MOVETO flag
- " '", tname "'" DISPLAY"ttype should be END-IF
ttype "'" DISPLAY"cname should be 'CREATE_TIME '; its value if ( NOT = -1) then
- '"cname "" DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 DISPLAY"indic1 should be 0; its value is ", indic1 "xxxxxxxxxxxxxxxxxx TOtname if (tname NOT = "CREATIONTIMES ") then MOVE flag END-IF if (ttype NOT=" TABLE") then MOVE 0 TO"FETCHC13521java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 END-IF if (cname NOTSQL C13521 MOVE 0 TOINTO, :ttype,::indic1
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 if (int1 NOTDISPLAYtname TABLESCOLUMNSvalue
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
MOVE"'"
99 TO MOVE"xxxxxxxxxxxxxxxxxx"TO tname " ",cname MOVExxxxxxxxxx ttype MOVE"xxxxxxxxxxxxxxxxxx"TOif ="java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 DISPLAY DISPLAY" INTO :tname, :ttype (ttype NOT = "VIEW EXECSQL INTOEND-IF MOVE SQLCODE TO SQL-COD
CHCKOK DISPLAY"tname MOVE 0 TO flag
- "',tname "" DISPLAY"ttype should be 'BASE TABLE'; its value is '",
ttype "' f(indic1 NOT = 1 java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 DISPLAY"cname should be 'TABLE_NAME '; its value is
- " '", cname "'" DISPLAY"int1 should be 16; its value is ", int1 DISPLAY"indic1 should be 0; its value DISPLAY "FETCH C13521 if (tname " INTO :tname, :ttype :cname,:int1:indic1;" MOVE 0 TOSQL C13521 END-IF ifttype = BASE)then MOVE 0 TO flag END-IF if (cname NOT = "TABLE_NAMEjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 36
0 TO END-IF
dic1 MOVE 0 TO flag NOSUBCLASSjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
MOVE 99 TO int1 MOVETO indic1 MOVE"xxxxxxxxxxxxxxxxxx"java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 19 MOVE"xxxxxxxxxx"TO ttype MOVE"xxxxxxxxxxxxxxxxxx"TO cname DISPLAYFETCH C13521" DISPLAY" INTO :tname, :ttype, :cname, :int1:indic1;" EXECEND-IF INTO :tname, :ttype, :cname, :int1:indic1 END-EXEC
MOVE TO SQL-COD PERFORM CHCKOK DISPLAY"tname should be 'CREATIONTIMES '; its value is
-" '" "' DISPLAY"ttype should be 'BASE DISPLAY (FLATER' 'USIG')"
ttype "'" DISPLAY"cname should be 'TABLE_SCHEM '; its value is
- " " cname DISPLAYint1;its,int1 DISPLAY"indic1 should be 0 MOVESQLCODE SQL-COD ifNOT = CREATIONTIMES MOVE 0 TO flag END-IF if (ttype NOT = "BASE TABLE") then MOVETO END-IF ifNOT TABLE_SCHEM MOVE 0 TO flag flag END-IF ifNOT indic1 MOVE 0 TO flag
.
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 MOVE"xxxxxxxxxxxxxxxxxx"TO tname SQLEND-EXEC MOVE CHCKOK
DISPLAY CASCADE DISPLAY:cname EXECSQL FETCH C13521 INTO :tname, :ttype, : CHCKOK MOVE SQLCODE TO SQL-COD PERFORMEXECS COMMIT DISPLAY"beTABLESCOLUMNS;its java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
- " '", tname "' if flag = 1 ) then DISPLAY"ttype should DISPLAY "***p *** " EXECINSERT HU DISPLAY"cname should be 'COLUMN_NAME '; its value is
- " VALUES'069','','PCO') END-EXEC DISPLAY" should be -1;its is ", indic1 if (tname NOT = "TABLESCOLUMNS ") then MOVE 0 TO flag END-IF ifttype VIEW then MOVE 0 TO flag END-IF if cname " ") then MOVE 0 TO ('063,'''PCO END-IF if (indic1 NOTCOMPUTEerrcnt + 1 MOVETO END-IF
9 TO MOVE" MOVE"xxxxxxxxxx"TOEND-EXEC MOVE"xxxxxxxxxxxxxxxxxx"TO cname DISPLAY"FETCH C13521" DISPLAY" :tname,:,:,:int1:indic1;" EXECSQL FETCH C13521 INTO :tname " TEST0694 MOVE SQLCODE TO SQL-COD DISPLAY"IntervalArithmeticand Casts PERFORM CHCKOK DISPLAY"eferences:" DISPLAY"tname should be 'TABLESCOLUMNS '; its value is
- " '", tname "'" DISPLAYDISPLAY" F 5 - DATETIMEdata types"
ttype "'" DISPLAY"cname should be 'CREATE_TIME '; its value is
- DISPLAY .-Extended DISPLAY"indic1 should be -1; its value is ", indic1
tnameTABLESCOLUMNSjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 MOVEflag END-IF if (ttype NOT = "VIEW ") then MOVE 0 TO flagCOMPUTESQLCODE END-IF
MOVE 0 TO flag *you want: interval hour to minute END-IF if ( *you have: exact numeric MOVE 0 TO flag END-IF
MOVE* This is how you do it:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVE"xxxxxxxxxx"TO ttype MOVE"xxxxxxxxxxxxxxxxxx"TO* 1.9 * INTERVAL '1.000000' SECOND DISPLAY"FETCH C13521" DISPLAY" INTO :tname, :ttype, :cname, :int1:indic1 "PNUM () NULL EXECDISPLAY EMPNUM INTO, , :, :int1END-EXEC MOVE CHAR, PERFORM CHCKOK DISPLAYtname';its value is
- " '", tname "'" DISPLAY"ttype should be 'VIEW '; its value is '",
ttype "'"EMPNUM)) END-EXEC DISPLAY" should be 'ABLE_NAME';its
- " '", cname CHCKOK
DISPLAY if (tname NOTDISPLAYCOMMIT MOVE 0 TOSQL WORKjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 END-IF if (ttype NOT = "VIEW ")java.lang.StringIndexOutOfBoundsException: Range [0, 47) out of bounds for length 25 MOVE java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 END-IF if (cname NOT = "TABLE_NAME ") then MOVE 0 TO flag END-IF if (indic1 SQL VIEW (, HOURS AS MOVE 0 TO flag PNUM AVG) * INTERVAL:0 TO END-IF
MOVEFROM GROUP BYPNUM END-EXEC MOVE"xxxxxxxxxxxxxxxxxx"TO tname MOVE"xxxxxxxxxx"TO ttype MOVE"xxxxxxxxxxxxxxxxxx"TOjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 DISPLAY"FETCHC13521java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 " :tname, :ttype, :cname, :int1:indic1;" EXECSQL FETCH C13521 INTO :tname, :ttype, :cname, :int1:indic1EXEC COMMITWORK END-EXEC MOVE SQLCODE SQLCODE SQL-COD PERFORM CHCKOK DISPLAY"tname should be 'TABLESCOLUMNS '; its value is
- " "" DISPLAY"ttype should java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 'java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 DISPLAY" DISPLAY"SELECT,"
- " '", cname "'" DISPLAYindic1 be 1; value s " indic1 if (tname NOT" HOUR )" MOVE CREATE (PNUM)AS END-IF if ttype=VIEWjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 MOVE 0 TO (CASTC (HOURSAS HOUR) END-IF if (cname = TABLE_SCHEMjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
0 flag END-IF if (indic1 CHCKOK MOVE 0 TO flag
DISPLA
9 TO java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 MOVE"xxxxxxxxxxxxxxxxxx"TO tname MOVE"xxxxxxxxxx"TO ttype"java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 MOVE"xxxxxxxxxxxxxxxxxx"TO cname
FETCH" DISPLAY" INTO :tname, :ttype, :cname, :int1:indic1;" EXECFETCH INTO :tname, :ttype, :cname, :int1:indic1 END-EXEC
SQLCODE SQL-COD PERFORM CHCKOK DISPLAY" should be 'TABLESCOLUMNS '; its valueis
- " '", tname "'" DISPLAY"ttype should 'VIEW ';its is'",
ttype "'" DISPLAYcname ' ' itsis
- " '", cname "'" DISPLAY"indic1 should be -1; its value is ", indic1 if (tname = "TABLESCOLUMNS ") then MOVE 0 TO SQLCODETO END-IF if ( NOT = "VIEW "then MOVE" java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 END-IF if (cname NOT = "TABLE_TYPE ") then MOVE 0TO END-IF ifindic1 = 1)then MOVE 0 TO flag END-IF
DISPLAYFETCH DISPLAY" INTO :tname, :ttype, :cname, :int1:indic1;" EXECSQL FETCH C13521 INTO:tnamettypecname int1END-EXEC MOVE SQLCODE TO SQL-COD "SQLCODEshould 100; its value is " SQL-COD DISPLAY"SQLSTATE should be 02000; its value is ", SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (SQLCODE NOT = 100 OR NORMSQ NOT = "02000") then MOVE flag END-IFSELECT ,
(RUN_SECONDS '01.000000 SECOND then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF DISPLAY""
DISPLAY"INSERT INTO CREATIONTIMES VALUES" DISPLAY'' USIG EXEC CHCKOK
('FLATER', 'USIG', DEFAULT " WORK;" MOVETO DISPLAY"SQLCODE should be < 0; its value is ", SQL-COD DISPLAYSQLSTATE 500;its ,SQLSTATE PERFORM NOSUBCLASS THRU
<NORMSQ0" java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 MOVE 0 TODISPLAYCREATE JOB_TYPE END-IF if (NORMSQ java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 then "Valid implementation-definedSQLSTATEaccepted" END-IF DISPLAY" "
DISPLAY"ROLLBACK;" EXECSQLEND-EXEC MOVECAST (AVGRUN_SECONDS) NUMERIC (8 )java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 PERFORM DISPLAY" "
SQLCODE TO EXECSQLPERFORM MOVE SQLCODE PERFORM CHCKOK DISPLAY" "
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQL"CREATEVIEWHUNDREDS(ORKTOTL)ASjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
VALUES('0693','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" dml135.pco *** fail *** " EXECSQLINTO .TESTREPORT
VALUES('0 SUM (CAST ( AS INTERVAL DAY TOMINUTE) 00 MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY"===============================
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD ******************** END TEST0693 ******************** ******************** BEGIN TEST0694 ******************* MOVE 1 TO flagEXEC COMMIT WORK END-EXEC
" " DISPLAY" Interval Arithmetic and Casts" DISPLAY"References:" DISPLAY" "java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAY" F# 20 -- CAST functions" DISPLAYSQL WORKS
- " strings" DISPLAY" 6.15 FT.1 -- Syntax for subtracting two
- " datetimes" DISPLAY ---- - - -- "
COMPUTE SQLCODE = -1 MOVE"xxxxx"TO SQLSTATE
*you have: approximate numeric *you want: interval hour to minute *You can't cast an approximate numeric as an interval (6.10 SR.4
*you have: exact numeric *you want: interval hour to minute *You can't cast an exact numeric as an interval with more than o *<datetime field> (6.10 SR.5).
* This is how you do it: *1.9 * INTERVAL '1:00' HOUR TO MINUTE
*If you've only got one <datetime field> you can do this: * CAST (CAST (1.9 AS NUMERIC (2, 1)) AS INTERVAL SECOND) *but you're probably still better off to say * 1.9 * INTERVAL '1.000000' SECOND
DISPLAY"CREATE TABLE WORKS (" " EMPNUMCHAR3) OTNULL, DISPLAY" PNUM CHAR (3) NOT NULL," DISPLAY" HOURSDECIMAL (),java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 DISPLAY" UNIQUE(EMPNUM,PNUM));" EXECSQL CREATE TABLE WORKS (
EMPNUM CHAR (3) NOTNULL"INSERTINTO VALUES" NOT,
HOURS DECIMAL (5),
UNIQUE(EMPNUM,PNUM)) END-EXEC MOVE SQLCODE SQLINTO RUN_TIMES VALUES PERFORM CHCKOK(0 '', 1.22) END-EXEC DISPLAY" "
DISPLAY VIEW (PNUM HOURS" DISPLAY" SELECT PNUM, AVG (HOURS) * INTERVAL '01:00' HOUR
-"TOMINUTEjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 DISPLAY" MOVE SQLCODE SQL-COD
E SQLCREATE PROJ_HOURS(, HOURS) AS SELECT PNUM, AVG (HOURS) * INTERVAL '01:00' HOUR TO
MINUTE FROM WORKS GROUP java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVE SQLCODE TO SQL-COD PERFORM DISPLAY" "
DISPLAYCREATE( )AS DISPLAY" SELECT PNUM," DISPLAY" AVG (CAST (CAST (HOURS AS INTERVAL HOUR)" DISPLAY" AS SQLCODE TO SQL-COD PERFORM DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 SELECT,
AVG (CAST (CAST (HOURS AS "(, '', 23.74);java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
AS HOUR TO MINUTE FROM GROUP BY PNUM MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"CREATE TABLE RUN_TIMES (" DISPLAY" JOB_ID INT NOT NULL UNIQUE," DISPLAY" JOB_TYPE CHAR (3) NOT *Allowing the sign to move inside of the quotes: TC #2 5.3 DISPLAY" RUN_SECONDS REAL);" EXECSQL CREATE TABLE RUN_TIMES (
JOB_ID INT NOTNULL UNIQUE,
JOB_TYPE CHAR (3) NOTNULL,
RUN_SECONDS REAL) END-EXEC MOVETO PERFORM CHCKOK DISPLAY""
COMMIT EXECSQL COMMIT WORK END-EXEC
SQLCODE PERFORM CHCKOK DISPLAY
DISPLAY"CREATE VIEW TYPE_TIMES "MINUTE DISPLAYSQLSELECT(*) INTO :int1 DISPLAY" AVG (RUN_SECONDS) * INTERVAL '1.0000'SECOND" DISPLAY" FROM RUN_TIMES GROUP BY JOB_TYPE;" EXECSQL VIEW (JOB_TYPE RUN_SECONDSjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 SELECT JOB_TYPE,
(RUN_SECONDS '01.000'SECOND FROM MOVE SQLCODE TOTO PERFORM CHCKOK DISPLAY" "
DISPLAY"CREATE VIEW HUNDREDS (WORKTOTL) AS" DISPLAY"SELECT SUM (AST ( AS INTERVAL DAY TO
- " MINUTE)) / 100" "FROM;java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 EXECSQL CREATE VIEW HUNDREDS (WORKTOTL) AS SELECTSUM java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 FROM PROJ_HOURS END-EXEC MOVE" H )"
CHCKOK DISPLAY" "
DISPLAY"int1 should be 43 its value is ", int1 DISPLAY" ('EX', 'P3', 25);" EXECINSERTWORKS
('EX', 'P3', ifint1 = 3 MOVEMOVETO java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 PERFORM DISPLAY" "
DISPLAYEND-IF DISPLAY" (0, if( = 1 AND int2 = 19) java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 EXECSQLINSERTINTO RUN_TIMES VALUES
(0, 'DMP'java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY"INSERT INTO RUN_TIMES VALUES" DISPLAY" (1, 'DMP', .49) EXECSQLFETCH INTO :int1, :int2 END-EXEC EXECSQLINSERTMOVETO 'DMP', 49 END-EXEC MOVE SQLCODE TO SQL-COD
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 DISPLAY" "
DISPLAY"INSERT INTO RUN_TIMES VALUES" DISPLAY" (2, 'CHK', MOVE TO flag EXECSQLINSERTINTO RUN_TIMES VALUES
(2, 'CHK', 5.2) END-EXEC
SQLCODE SQL-COD PERFORM = -1 DISPLAY" "
DISPLAY"INSERT INTO RUN_TIMES VALUES" DISPLAY" OMPUTEint2 = -1 "FETCHC13531INTO:, :int2;"
,'27 MOVE SQLCODESQLCODESjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 PERFORM DISPLAY" "
*The views PROJ_HOURS and PROJ_HOURS2 should be equivalent *modulo any roundoff or truncation error.
*Allowing the sign to move inside of the quotes: TC #2 5.3 *( datetime - datetime ) <interval qualifier>: 6.15 FT.1 *Comparability of HOUR TO MINUTE vs. MINUTE: 4.5.2
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1" "FROMPROJ_HOURS A, PROJ_HOURS2 B" DISPLAY" WHERE A.PNUM = B.PNUM" DISPLAY" java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 19 DISPLAY" BETWEEN INTERVAL '-1' MINUTE AND INTERVAL '+1'
- " MINUTE;" EXECDISPLAY" C13531 INTO :int1, :int2;" FROM PROJ_HOURS A, PROJ_HOURS2 B EXECSQL FETCH int1
SQLCODESQL-COD AND (A.HOURS - DISPLAYint1,
BETWEEN " should be 0; its is ", java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 END-EXEC MOVE SQLCODE TO SQL-COD PERFORM
should6 value"
i NOT MOVE 0 SQLCODE
*The views TYPE_TIMES and TYPE_TIMES2 should be equivalent *modulo any roundoff or truncation error.
COMPUTE ( NOT 1 NORMSQ="20)then DISPLAYMOVE flag DISPLAY" FROM TYPE_TIMES A, TYPE_TIMES2 B" DISPLAY"WHEREA.OB_TYPE = BJOB_TYPE" DISPLAY" AND (A.RUN_SECONDS - B.RUN_SECONDS) SECOND" DISPLAY" BETWEEN INTERVAL '-00.000010' SECOND"
EXECSQLDISPLAY" FROM TYPE_TIMESCLOSE"
WHERE = B MOVETO
BETWEEN INTERVAL '-00.000010 PERFORM CHCKOK ANDINTERVAL0'SECOND MOVE SQLCODEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 PERFORMDISPLAY" EXTRACT (SECOND FROM RUN_SECONDS) DISPLAY"int1 should be 2; its value is ", int1 "FROMTYPE_TIMES ORDER BY JOB_TYPE;" ifint1 = )then MOVE flag END-IF
*Check contents of PROJ_HOURS
DISPLAY CHCKOK DISPLAY"DISPLAY "" DISPLAY" EXTRACT (MINUTE FROM HOURS)" DISPLAY" FROM PROJ_HOURS ORDER BY PNUM;" EXECSQL DECLARE C13531 CURSOR FOR
EXTRACT FROM HOURS),
EXTRACT (MINUTE FROM HOURS) FROM PROJ_HOURS ORDERMOVESQLCODE TOjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
DISPLAY"OPEN C13531 MOVE flag
E MOVE SQLCODE
RFORM DISPLAY" "
COMPUTE int1 = -1 COMPUTE int2 = -1 DISPLAYFETCHINTO,:;" EXECSQL FETCH C13531 INTO :int1, :int2 END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK
should 3 value",int1
0 flag if (int1
0flag END-IF TO
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 END-IF if (flag0 flag DISPLAY"truncation/roundoff
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 DISPLAY
COMPUTE int1CLOSE; COMPUTE int2 = -1 DISPLAY"FETCH C13531 INTO :int1, :java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 36 EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK "EXTRACTDAYFROMWORKTOTL"
D "int1 should be 35;its valueis", int1 DISPLAY"int2 should be 0; its value is ", int2 SQLSELECTEXTRACTDAY WORKTOTL ifint1 = 5ORNOT=0 java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 MOVE 0 TO flag
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
COMPUTE int1 = -1 COMPUTE int2 = -1 DISPLAY"FETCH C13531 INTO :int1, :int2;" EXECSQL FETCH C13531 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 MOVE SQLCODE TO SQL-COD HOUR PERFORM CHCKOK DISPLAY"int1 should be 52; its value is ", int1 : FROMEND-EXEC DISPLAY" should be 30; itsvalueis" int2 if (int1 NOT = 52 ORDISPLAYint1 valueint1
0 flag END-IF
COMPUTE int1 = -1 COMPUTE int2 = -1
FETCH :,:;java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 EXECSQL FETCH C13531" int1FROM;" MOVE SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 30; its value is ", int1 DISPLAY"int2 should be 0; its value is ", int2 if (int1 NOT" should be 11; value is " java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 MOVE 0 TO flag END-IF
COMPUTE int1 = - COMPUTE int2 = -1
DISPLAYC13531:,:; EXECSQL FETCHEND-IF MOVE SQLCODE PERFORM CHCKOK DISPLAY"int1 should be 46; *18 seconds. It should get rounded downwards even DISPLAY"int2 should be 0; its value is ", int2 *if there is rounding/truncation error in previous if (int1 NOT = 46 OR int2 NOT = 0) then
flag EXEC ROLLBACK END-EXEC
COMPUTE int1 = -1 COMPUTE int2 = -1 DISPLAY"FETCH C13531 INTO :int1, :int2;" EXECDISPLAYDROP MOVE SQLCODE TO SQL-COD
CHCKOK DISPLAY"int1 should be 12; its value is ", int1 DISPLAY" should be 0; its value is ", int2 if (int1 NOT CHCKOK MOVE 0 TO flag END-IF
" C13531 INTO :int1,:int2" EXECSQLM SQLCODETO MOVETO DISPLAY"SQLCODE should be 100; its value is ", SQL-COD DISPLAY"SQLSTATE should be 0 TABLERUN_TIMES ;java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 PERFORM NOSUBCLASS THRUMOVETO SQL-COD PERFORM MOVE 0 " END-IF if (NORMSQ = "02000"AND NORMSQ COMMIT then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF DISPLAY java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
DISPLAY"DECLARE C13532 CURSOR FOR" DISPLAYSELECT RUN_SECONDS DISPLAY" FROM TYPE_TIMES ORDER BY JOB_TYPE;" SQL C13532 FOR SELECT EXTRACT (SECOND
TYPE_TIMESB END-EXEC
DISPLAY"OPEN C13532;" EXECOPENjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
SQLCODESQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE flt1 = -1.0 DISPLAY"FETCH C13532 INTO :flt1;" EXECSQL FETCH C13532 INTO :flt1 END-EXEC MOVE SQLCODE PERFORM CHCKOK DISPLAY"flt1 should be 10.993333 +- 0.00001; its value is
- " ", flt1 if (flt1 < 10.993323 OR flt1 > 10.993343) thenDISPLAYReferences MOVE 0 TO flagDISPLAY #1 -Transaction END-IF
DISPLAY"flt1 should be 0.855 +- 0.00001; its value is ",
flt1 if (flt1 < 0.85499 OR flt1 > 0 S STAFF MOVE 0 TO flag C13541 END-IF
DISPLAYjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 EXECSQL FETCH C13532 MOVE SQLCODE TO DISPLAY"SQLCODE should be 100; its value is ", SQL-COD DISPLAYSQL C13541java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 PERFORM NOSUBCLASS THRU CHCKOK if (SQLCODE NOT = 100 OR NORMSQ NOT = MOVE 0 TO flag END-IF if (NORMSQ *Violation of 13.9 SR.2 then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF "java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
SET =1 CURRENT C13541 EXECSQLCLOSE C13532 SQLCODE SQL-COD
SQLCODE SQL-COD PERFORM CHCKOK DISPLAY" "
*Test interval divide
COMPUTE int1 = -1 DISPLAY"SELECT EXTRACT DAY WORKTOTL)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 DISPLAYINTOHUNDREDS EXECSQLSELECT =0 NOT) INTO :int1 " accepted.java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 MOVE SQLCODE *4.21 PP.9: state of cursor is now unknown
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
int1 ifPERFORM MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT EXTRACT (HOUR FROM WORKTOTL)" DISPLAY"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 EXECSQLSELECT EXTRACT (HOUR FROM WORKTOTL) INTO :int1 DISPLAY"FETCHC13541 INTO:int1;" MOVESQLFETCH INTO: END-EXEC PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT EXTRACT (MINUTE FROM WORKTOTL)" DISPLAY*Violation of 13.6 SR.2 EXECSQLSELECT EXTRACT (MINUTE FROMDISPLAY"DELETEFROMHU."
MOVE SQLCODE TOEXECDELETE HU PERFORM CHCKOK DISPLAY"int1 should be 11; its value is ", int1 if (int1 NOT = 11) then MOVE 0 TO flag END-IF
*Exact value would have been 2 hours, 11 minutes, *18 seconds. It should get rounded downwards even *if there is rounding/truncation error in previous *calculations.
DISPLAY"ROLLBACK WORK;" SQL WORK MOVE
CHCKOK DISPLAY" "
DISPLAY"DROP TABLE WORKS CASCADE;" EXECSQL DISPLAY . MOVE SQLCODE TO SQL-COD PERFORM CHCKOK
D java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
if ( flag DISPLAY" *** pass *** " EXECSQLINSERTINTO HU
('09''','PCO' java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 MOVE FETCH INTO, :ename, :city else DISPLAY" dml135.pco *** fail *** " EXECSQLINSERT HU.
VALUES('0694','fail','PCO') END-EXEC MOVETO COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY"======== DISPLAY"int1 " int1
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD ******************** END TEST0694 ******************** ******************** BEGIN TEST0695 ******************* MOVE 1 TO flag
*Note that there are special restrictions on updating through *an ordered cursor, see 13.9 LR.1.a
DISPLAY"DECLARE C13541 CURSOR FOR" DISPLAY" SELECT GRADE FROM HU.STAFF" DISPLAY" FOR READ ONLY;" EXECSQL DECLARE C13541 CURSOR FOR SELECT GRADE FROM HU.STAFF FORREAD ONLY END-EXEC
COMPUTE int1 = -1 DISPLAY"FETCH C13541 INTO :int1;" EXECSQL FETCH C13541 INTO :int1 END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 is ", int1
*This may be rejected at compile time. If it is, *save the error message(s) and TEd out this statement.
*Violation of 13.9 SR.2
DISPLAY"UPDATE HU.STAFF" DISPLAY" SET GRADE = 11 WHERE CURRENT OF C13541;" EXECSQL UPDATE HU.STAFF SET GRADE = 11 WHERE CURRENT OF C13541 END-EXEC MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0; its value is ", SQL-COD DISPLAY"SQLSTATE should be 42000; its value is ", SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (SQLCODE NOT < 0 OR NORMSQ NOT = "42000") then MOVE 0 TO flag END-IF if (NORMSQ = "42000"AND NORMSQ NOT = SQLSTATE) then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH C13541 INTO :int1;" EXECSQL FETCH C13541 INTO :int1 END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 is ", int1
*This may be rejected at compile time. If it is, *save the error message(s) and TEd out this statement.
*Violation of 13.6 SR.2
DISPLAY"DELETE FROM HU.STAFF" DISPLAY" WHERE CURRENT OF C13541;" EXECSQLDELETEFROM HU.STAFF
WHERE CURRENT OF C13541 END-EXEC MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0; its value is ", SQL-COD DISPLAY"SQLSTATE should be 42000; its value is ", SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (SQLCODE NOT < 0 OR NORMSQ NOT = "42000") then MOVE 0 TO flag END-IF if (NORMSQ = "42000"AND NORMSQ NOT = SQLSTATE) then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF DISPLAY" "
DISPLAY"DECLARE C13542 CURSOR FOR" DISPLAY" SELECT * FROM HU.STAFF" DISPLAY" FOR UPDATE OF GRADE, CITY;" EXECSQL DECLARE C13542 CURSOR FOR SELECT * FROM HU.STAFF FOR UPDATE OF GRADE, CITY END-EXEC
COMPUTE int1 = -1 DISPLAY"FETCH C13542 INTO :emnum, :ename, :int1, :city;" EXECSQL FETCH C13542 INTO :emnum, :ename, :int1, :city END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"emnum is ", emnum DISPLAY"ename is ", ename DISPLAY"int1 is ", int1 DISPLAY"city is ", city
*This may be rejected at compile time. If it is, *save the error message(s) and TEd out this statement.
*Violation of 13.9 SR.8
DISPLAY"UPDATE HU.STAFF" DISPLAY" SET EMPNUM = 'HAR' WHERE CURRENT OF C13542;" EXECSQL UPDATE HU.STAFF SET EMPNUM = 'HAR' WHERE CURRENT OF C13542 END-EXEC MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0; its value is ", SQL-COD
--> --------------------
--> maximum size reached
--> --------------------
Messung V0.5
¤ Dauer der Verarbeitung: 0.30 Sekunden
(vorverarbeitet)
¤
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.