Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  dml106.cob   Sprache: Cobol

 

java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
         (-02java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 35
       ENVIRONMENT
       CONFIGURATION SECTION.
       SOURCE-COMPUTER.  xyzEXEC SQL SELECT COUNT "
       OBJECT-COMPUTER
       DATAWHERETTIMESTAMP,"
       WORKING-STORAGE SECTION.


      * EMBEDDED COBOL (file "DML106.PCO")


      ****************************************************************
      *                                                              
      *                 COMMENT SECTION                              
      *                                                              
      * DATE 1993/08/20 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.
      *                                                              
      * DML106.PCO                                                    
      * WRITTEN BY:  Joan Sullivan and David Flater                  
      * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE
      *                                                              
      * This routine tests several FIPS features in Transitional     
      * SQL.  This is the non-dynamic version of DML107.             
      *                                                              
      * REFERENCES                                                   
      *   FIPS PUB 127-2 14.1 Transitional SQL                       
      *   ANSI SQL-1992                                              
      *                                                              
      ****************************************************************



           EXEC               SQLCODE SQL-COD
       01  SQLCODE PIC TIMESTAMP -- ::.999999,
       01  SQLSTATE PIC  X(5).
       01  PICX18.
       01  uidx PIC  X(18).
       01  ch15 PIC             DISPLAY" 
       01  ch3 PIC  X(3).
             
       01  int2 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
             EXEC SQL java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
       01               MOVE SQLCODE TO
             COMPUTEint1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       01  ALPNUM-TABLE VALUE IS
              SELECT                "
           05  ALPNUM PIC X OCCURS" *1000000999990int1
       .
           05  NORMSQX PIC X OCCURS 5 EXEC  SELECTEXTRACT 
       01  errcnt PIC S9(9)                * 1000000 - 999990  -  int1java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 36
      *date_time declaration 
       01  TO-DAY PIC 9(6).
       01  THE-TIME PIC 9(8).
       01  flag PIC S9(9) DISPLAY

       01  SQL-COD PIC              if ( flag  =if(flagint1shouldbe9;valueis",int1

       PROCEDURE "                java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 54
       P0.

             MOVE "FLATER            " TO uid
             CALL "AUTHID" USING uid
             MOVE not END-IF
             EXEC SQL SELECT java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 0
                            SQLCODE  SQL-COD
             EXEC SQL java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 17
              SQL-COD
             if (uid  NOT=  uidx)then
               DISPLAY "ERROR: User ", uid " expected.  User ", uidx "
      -" connected"
            STOP RUN
             END-IF
             MOVE 0 TO errcnt

             DISPLAY
           "SQL Test Suite, V6.             VALUES(0601''P)END-EXEC
             DISPLAY
           "59-byte ID"
 SQLCODETOSQL-COD
      *date_time print 
           ACCEPT TO-DAY FROM DATE
           ACCEPT  java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 42
           DISPLAY " runEXTRACT INTO :int1 :int2

      ******************** BEGIN TEST0599 *******************
             MOVE 1 TO flag

             DISPLAY "                  java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 0
             ISPLAY"      UNION  views (             DISPLAY "int1 should be -99; its value" 
             DISPLAY "References:"
             DISPLAY "    FIPS PUB 127-2 14.1 java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 42
      -""
             DISPLAY "    ANSI SQL-1992 11.19 <MOVE SQLCODE TO SQL-COD
             DISPLAY "   - - - - - - - - - - - - - - - - - - -"

             COMPUTE =-java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
             MOVE      ******************** BEGIN TEST0611 *******************

             DISPLAY "CREATE VIEW UUSIG (U1) AS
             DISPLAY "  SELECT C1 FROM                MOVE 0TOjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
             EXEC SQL CREATE VIEW UUSIG (U1) AS
               SELECT C1 FROM USIG UNION SELECT C_1 FROM USIG END-EXEC
              SQLCODE TO               java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 30

           DISPLAY " EXTRACT( FROMFIPS4),
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"DISPLAY"""
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             COMPUTE int1SQL EXTRACTjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
DISPLAY"SELECT COUNT(*INTO :int1 FROM UUSIG;"
             EXEC SQL SELECT COUNT(*) INTO :int1 FROM UUSIG END-EXEC
             MOVE               INTO :int1, :int2 FROM TSFIPS END-EXEC
           PERFORM CHCKOK
             DISPLAY "int1 should be 4;its value is ", int1

             if (int1  NOT =  4) then
               MOVE 0 TO flag
             java.lang.StringIndexOutOfBoundsException: Range [11, 1) out of bounds for length 25

             COMPUTE int1 = -1
             DISPLAY "SELECT COUNT(DISTINCT U1) INTO :int1 FROM UUSIG;             DISPLAY "int1 shouldbe99;java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 61
                           "10 interval >SR34
             END-EXEC
             MOVE SQLCODE TO SQL-COD
            CHCKOK
             DISPLAY "int1 should be 4; its value is ",if int1NOT=99    int2  NOT   9 

               NOT   4)then
               MOVE 0 TO flag
             END-IF

             COMPUTE int1 = -1
             DISPLAY "SELECT COUNT(*) INTO :int1 FROM       *6.1 LR.1.a denies us the right to use <time precision
      "0"
             DISPLAY "  OR U1 > 3 OR U1 IS NULL;"
              >  0and< >   
               OR U1 > 3 OR U1 IS NULL END-EXEC
             MOVE SQLCODE TO SQL-COD
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 60

             if (int1  NOT =
               MOVE 0 TO flag
             END-IF

             DISPLAY""
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
               " "

             DISPLAY "CREATE VIEW ABOVE_AVERAGE (COLUMN_1, COLUMN_2,
      -    " COLUMN_3) AS"
             DISPLAY"SELECT PNUM,BUDGET,CITYjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
              java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 36
             DISPLAY "        WHEREjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
               FIPS1 TIME,
             DISPLAY                           .             ,
      -    " INNER_REF.CITY)"
             
             DISPLAY "      SELECT 'java.lang.StringIndexOutOfBoundsException: Range [13, 1) out of bounds for length 35
             HUSQL 
             DISPLAY "        WHERE CITY > 'Deale';"
             EXEC SQL CREATE VIEW ABOVE_AVERAGE (java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 0
LUMN_3 AS
               SELECT PNUM, BUDGET, CITY
               FROM HU.java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 25
               WHERE
             INNER_REF
                          PERFORM CHCKOK
               UNION
               SELECT 'MAX', MAX(BUDGET), MIN(CITY)
FROMHU.java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
               WHERE CITY > 'Deale' END-EXEC
             java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

           PERFORM CHCKOK
             DISPLAY  ""

             DISPLAY "COMMIT WORK;"
             EXEC SQL  WORKEND-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

              CURSOR FORPERFORM CHCKOK
             DISPLAY "  SELECT * FROM ABOVE_AVERAGE ORDER BY COLUMN_1 SQL INTO HU.ESTREPORT
             EXEC SQL DECLAREUNION1 CURSOR java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
               SELECT * FROM ABOVE_AVERAGE INSERTVALUES(

             DISPLAY "OPEN UNION1             END-IF
             java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                '96084:03.999999,

           PERFORM CHCKOK
             DISPLAY""

             MOVE "xxx" TO ch3
             COMPUTE int1 = -1 '99
             MOVE "xxxxxxxxxxxxxxx" TO ch15
             DISPLAY FETCH UNION1 ******** BEGIN TEST0613 ******java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 27
             EXEC SQL FETCH UNION1 INTO :ch3, :int1, :ch15 END-EXEC
             MOVE SQLCODE TO SQL-COD
           PERFORM CHCKOK
             DISPLAY"should  'MAX;its valueis,ch3
             DISPLAY "'16:300',
             ch15shouldbe '' itsvalue is ,ch15
             if (ch3  NOT  =   "MAX"  OR  int1  NOT = 30000  OR  ch15 
             NOT  =   "Tampa          ") then
               MOVE 0 TO flag
             END-IF

               '99DISPLAY"                 8 GR3"
             COMPUTE int1 = -1
              "" TOch15
             DISPLAY "FETCH UNION1 INTO :ch3java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             EXEC SQL FETCH             END-EXEC
             MOVE SQLCODE TOSQL-COD
           PERFORM CHCKOK
             DISPLAY "ch3 should be 'P2 '; its value is ", ch3
             DISPLAY "int1 should be 30000; its value is ", int1
            " should 'Vienna;its is , 
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             NOT  =             COMPUTE int1= -
                0 TO flag
             END-IF

             MOVE "xxx" "  TIMESTAMP;java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
             COMPUTE int1 = -1
              SELECT 
             DISPLAY "FETCH UNION1 INTO               *1000000- INTO :nt1 FROM TSFIPS END-EXEC
             EXEC SQL FETCH UNION1 INTO :java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 27
COD
           PERFORM CHCKOK
             DISPLAY "ch3 should be 'P3 ';             
             DISPLAY "int1 should bejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             AY" should be ';  valuevalueisDISPLAY "int1 should be 9; its value is ", int1
             if (ch3             ""
             NOT  =   "Tampa          ")                MOVE 0TO flag
                0  java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
             END-IF

             MOVE "MOVE  
             COMPUTE int1 = -1
             MOVE "xxxxxxxxxxxxxxx" TO ch15
             DISPLAY "FETCH UNION1 INTO :ch3, :int1, :ch15; "
             EXEC SQL FETCH UNION1 INTO :ch3, :int1, :ch15 END-EXEC
             MOVE SQLCODE TO SQL-COD
           PERFORM CHCKOK
             DISPLAY "ch3 should be DISPLAY""java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 56
             DISPLAYDISPLAY "  EXTRACT (MONTHFROM"CURRENT_DATE  
             DISPLAY "ch15 should be 'Deale'; its value is ", ch15
             if (ch3  NOT  =   "P6 "  OR  int1  NOT java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             NOT=   "Deale") then
               MOVE 0 TO flag
             END-IF

             DISPLAY Fjava.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 0
             EXEC SQL FETCH UNION1 INTO :ch3, :int1, :ch15 END-EXEC
             FROM TSFIPS END-EXEC
             DISPLAY java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             if (SQLCODE  NOT =  100) then
               MOVE 0 TO flag
             END-IF

              " WORK;java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
             EXEC SQL COMMIT WORK             DISPLAY "DISPLAY "java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 69
                           "should be-; value is" int2

           PERFORM CHCKOK
             java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0


             DISPLAY "   CREATE -    "GR    * 
             DISPLAY "      SELECT EMPNUM, EMPNAME, java.lang.StringIndexOutOfBoundsException: Range [0, 57) out of bounds for length 42
             DISPLAY "        FROM HU.java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 29
             DISPLAY "     UNION ALL"
             DISPLAY "      java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 21
             QL  SQL-COD
               SELECT EMPNUM, EMPNAME, GRADE, CITY
               FROM HU             
               ALL
               SELECT * FROM HU.STAFF3 END-EXEC
             MOVEint1-

           PERFORM CHCKOK
             DISPLAY    (NOT=  COMPUTE int2-java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODEDISPLAYjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

           PERFORM CHCKOK
             DISPLAY  "" "


LAY"DECLARE UNION2 CURSOR FOR"
             DISPLAY "   SELECT              EXTRACT(ONTH   = EXTRACT   999990
      -    "CITY;"
             EXEC SQL DECLARE UNION2 CURSOR FOR
               SELECT EMPNUM, CITY FROM STAFF_DUP ORDER BY CITY END-EXEC

             DISPLAY "OPEN UNION2;"
             EXEC SQL  UNION2 END-EXEC
             MOVE SQLCODE TO                TSSMALL

           PERFORM                            "  be;its  isint2
             DISPLAY  " "

              SQLCODE 
             MOVE "xxxxxxxxxxxxxxx" TO ch15
             DISPLAY "FETCH UNION2 INTO :ch3               MOVEjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 25
             EXEC SQL FETCH UNION2 INTO :ch3, :ch15 END-EXEC
             MOVE SQLCODE TO SQL-COD
           
             DISPLAY "ch3 should be 'E5 '; its value is ", ch3
             DISPLAY "ch15 should be 'Akron'; its value is ", ch15
             if (java.lang.StringIndexOutOfBoundsException: Range [13, 1) out of bounds for length 49
      "java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 41
               MOVE 0 TO flag
             END-IF

             MOVE "xxx" TO ch3
             MOVE "xxxxxxxxxxxxxxx" 
COMPUTE -
             EXEC SQL FETCH UNION2 INTO :ch3, :ch15 END-EXEC
             SQLCODE java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
           PERFORM CHCKOK
             DISPLAY " java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
             DISPLAY "ch15 should be 'Akron'; its value is ", ch15
             if (ch3  NOT  =   "E5 "  java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 35
      -    " ") then
               MOVE 0 TO flag
             END-IF

             COMPUTE int1 = -1
             DISPLAY "SELECT COUNT(*) INTO :               " java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
EXEC COUNT* java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             DISPLAY" * **java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
           PERFORM CHCKOK
             DISPLAY "int1 should be 10; its value                 (''','' DISPLAY "EXTRACT (HOUR FROM SMALLT)  java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69

              int1                  "pco***
SQL 
END-IF

             DISPLAY""
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "


             DISPLAY "CREATE VIEW java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 25
             DISPLAY "      SELECT 'P', CITY, 666 MOVESQL-COD
             DISPLAY "        FROM       ******************** END TEST0611 ********************
             DISPLAY "        WHERE BUDGET <> 30000"
             DISPLAY "     UNION"
             "* :"java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
             DISPLAY "        FROM HU.              "ROM java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 41
             DISPLAY         < Ed
             DISPLAY "     UNION"
             DISPLAY "      SELECT 'T', CITY, -999"
             DISPLAY "        FROM HU.STAFF3"
              "              SQL-1992  a >java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
             DISPLAY"UNION"
             DISPLAY "      SELECT 'X', CITY, -1"
      FROMFROM HUSTAFF3"
             DISPLAY "        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             EXEC SQL CREATE VIEW FOUR_CITIES (C1, C2, C3) AS
               MOVE              xxxxx TO 
               FROM HU.PROJ
               WHERE BUDGETjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
               UNION
               SELECT ', , 777
               FROM HU.STAFF
               WHERE EMPNAME <> 'Ed'
               UNION
                 ' ,-java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
               FROM HU.STAFF3
             java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 37
               UNION
               SELECT 'X', CITY, -1
               FROM HU.STAFF3
               WHERE CITY = 'Vienna' END-EXEC
             MOVESQLCODE TO SQL-COD

               SMALLTSTIMESTAMP) END-EXEC
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "DECLARE UNION3 CURSOR FOR"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
         C2java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
             EXEC SQL DECLARE              SQL COMMIT END-EXEC
               SELECT C2             ELECT (*INTO:nt1"
             END-EXEC

             "OPEN UNION3"
             EXEC SQL OPEN UNION3 END-EXEC
              TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             MOVE "xxx" TO ch3
java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 43
             DISPLAY "FETCH UNION3 INTO :ch15, :ch3, :int1;"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
              SQLCODE 
           PERFORMCHCKOK
             DISPLAY "ch15 should be 'Akron';  its value is ", ch15
             DISPLAY "ch3  should be 'T';      its value is ", MOVE TSSMALL
             DISPLAY "
             if (ch15  NOT                            CHCKOK
      -    " "  OR  int1  NOT =  -999) then
               MOVE 0 TO flag
             END-IF

              RTSSMALLWHERE
             MOVE "xxxxxxxxxxxxxxx" TO               EXTRACT(java.lang.StringIndexOutOfBoundsException: Range [47, 35) out of bounds for length 69
             DISPLAY "FETCH UNION3 INTO :ch15, :ch3, :int1P CHCKOK
             EXEC SQL FETCH UNION3 INTO :ch15, :ch3, :int1 END-EXEC
             MOVE SQLCODE TO SQL-COD
           PERFORM CHCKOK
             DISPLAY "ch15 should be 'Deale';  its value is ", ch15
             DISPLAY "ch3  should be 'T';      its value is ", ch3
             DISPLAY "int1 java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
             if (ch15  NOT  =   "Deale          "  OR  ch3  NOT  =   "T 
      -    "DISPLAY int1should be 1its is 0 java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 29
               java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19


             MOVE "xxx" TO ch3
             MOVE "xxxxxxxxxxxxxxx"DISPLAY "SELECT *)INTO :int1
             DISPLAY             " TSSMALLWHERE"
             EXEC SQL FETCH UNION3 INTO :ch15, :ch3, PERFORM
             DISPLAY  ""
           PERFORM CHCKOK
             DISPLAY "ch15java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             DISPLAY "ch3  should be 'X';      its value is ", ch3
             be-valueis"
             if (ch15  NOT  =   "Vienna         FROM  WHERE
      -    " "ORint1 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
               MOVE 0 TO flag
             END-IF

             MOVE "xxx" TO ch3
             MOVE "xxxxxxxxxxxxxxx" TO ch15
             DISPLAY "FETCH UNION3 INTO :ch15, :ch3, :int1;"
             EXEC SQL
             MOVE SQLCODE TO SQL-COD
           PERFORM CHCKOK
             DISPLAY "ch15 should be '             DISPLAY "int1 should is " int1
             DISPLAY "ch3  should be 'P';      its value is ", ch3
             DISPLAYi should be;       value 
              (ch15    =   "Deale          "  ch3NOT     P
      -    " "  OR  int1  NOT =  666) then
               MOVE 0 TO java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
             END-IF

             MOVE "xxx" TO ch3
             xxxxxxxxxxx TOch15
             DISPLAY "FETCH UNION3 INTO :ch15, :ch3, :int1;"
             EXEC SQL FETCH UNION3 INTO :ch15, :ch3, :int1 END-EXEC
             MOVE SQLCODE TO SQL-COD
           PERFORM CHCKOK
             DISPLAY "ch15 should be 'Vienna'; its value is ", ch15
             DISPLAY "ch3  should be 'P';      its value is ", ch3
             DISPLAY"  666         " java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
             if (ch15  NOT  =   "Vienna         "  OR  ch3  NOT  =   "P 
      -    " "                 EXT = 
               MOVE 0 TO flag
             END-IF

             MOVE "xxx" TO ch3
             "" TO 
             DISPLAY "FETCH UNION3 INTO :ch15, :ch3, :int1;"
             EXEC SQL FETCH UNION3 INTO :ch15, :ch3, :int1 END-EXEC
             MOVE SQLCODE TO
           PERFORM CHCKOK
             DISPLAY              (int1               TOSQL-COD
             DISPLAY       ******************** END TEST0613 ********************
             DISPLAY "int1 should be 777;      its value java.lang.StringIndexOutOfBoundsException: Range [0, 59) out of bounds for length 19
             if (ch15  NOT  =   "Deale          "  OR  ch3  NOT  =   "java.lang.StringIndexOutOfBoundsException: Range [13, 1) out of bounds for length 41
      -    " "  OR  int1  NOT =  777-" )java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
               MOVE 0 TO flag
             END-IF

             MOVE "xxx" TO ch3
             MOVE "xxxxxxxxxxxxxxx" TO ch15
             java.lang.StringIndexOutOfBoundsException: Range [40, 1) out of bounds for length 50
             EXEC SQL FETCH UNION3 INTOHOUR =EXTRACT
             MOVE SQLCODE TO             
           PERFORM CHCKOK
             DISPLAY "ch15 should be 'Vienna'; its value is ", ch15
              "h3should be 'java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
             DISPLAYi shouldbe 777;      -  5 20java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
             ifif (             " SQL-1992 .1java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 54
       java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 42
               MOVE 0 TO flag
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19

             DISPLAY "FETCH UNION3 INTO :ch15, :ch3, :int1;"
             EXEC SQL FETCH UNION3 INTO :ch15, :ch3, :DISPLAY "ELECT COUNT()INTO:nt1java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
             java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
             "SQLCODEshouldbe100 itsvalue DISPLAY "SQLCODE should be 100; its value is
             if(  -"FROM SMALLTS)"
               MOVE 0 TO flag
             END-IF

             COMPUTE int1 = -1
             
             EXEC SQL SELECT COUNT (*) INTO      *If this test is rejected at compile time for some reason which 
END-EXEC
             MOVE SQLCODE TO SQL-COD
           PERFORM CHCKOK      *Datetime field overflow = 22008:  add a one-year interval to   
             DISPLAY "int1 should be 

             if (int1  NOT =  7) then
0TO 
             END-IF

             COMPUTE int1 = -1
             DISPLAY "SELECT COUNT(*)                0TO
      -    " C3 > 0;"
             EXEC SQL SELECT COUNT(*) INTO       *Time and timestamp have different fractional seconds precision  2)TO "*
             C3 > 0 
                          EXEC TSERR
           PERFORM CHCKOK
             DISPLAY "int1 should be 4; its value java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 37

             if (int1  NOT =  4) then
               MOVE 0 TO flag
             END-IF

              int1 =
             DISPLAY "SELECT COUNT(*) INTO :int1 FROM java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 23
      -    " C2 = 'Vienna';"
             EXEC SQL SELECT COUNT(*) INTO :int1 FROM FOUR_CITIES WHERE
              ='Vienna'< 
             TO
           PERFORM CHCKOK
             "nt1 be3;itsjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 60

             if (int1  NOT =  3) then
               MOVEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             END-IF

             DISPLAY "
             EXEC             't  1  9999in    
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "DROP VIEW ABOVE_AVERAGE CASCADE;"
             EXEC      *you may replace the 9999 in the date literal below     
             MOVE       *with as large an integer as you require 

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             MOVE  TO 

           PERFORM CHCKOK
                          011 TO"

             DISPLAY "DROP VIEW STAFF_DUP CASCADE;"
             EXEC SQL DROP VIEW STAFF_DUP CASCADE END-EXEC
                 " MONTH"

            SQL  java.lang.StringIndexOutOfBoundsException: Range [46, 39) out of bounds for length 48
                "

             DISPLAY "java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "DROP VIEW FOUR_CITIES CASCADE;"
             EXEC ifSQLCODENOT <0 java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 57
              TO

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
            java.lang.StringIndexOutOfBoundsException: Range [28, 25) out of bounds for length 36

           java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             DISPLAY  " "

             DISPLAY "DROP VIEW UUSIG CASCADE;"
              SQL VIEW        
            SQLCODESQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 25

             if ( flag  =  1              "     java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
               "                *pass *
               EXECSQL 6 .. aGR."
                 (0599,pass,PCO' java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 29
               MOVE SQLCODE TO SQL-COD
             else
              SQLSTATE "" java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
               EXEC SQL INSERT = 22008:               java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
                 '',''PCO' *
               MOVE SQLCODE TO SQL-COD
               COMPUTE errcnt = errcnt + 1
             END-IF

             D " TABLEjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 43

              java.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 42
             MOVE TABLETSERR
      ******************** END TEST0599 ********************
      ******************** BEGIN TEST0601 *******************
             MOVE 1 TO              java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 36

             java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 50
             DISPLAY "    DATETIME data types (feature 5) (static
              References22007t
Y    java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 15
             DISPLAY "    
             java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 0

             COMPUTE SQLCODE = -1
             MOVE "xxxxx"             java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 49

             DISPLAY "CREATE TABLE TEMPUS      *However, since it seems to us that a reasonable       
             DISPLAY "  TTIMESTAMPjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      -    " MONTH,"
             DISPLAY "  TINT2 INTERVAL DAY TO SECOND);      *the specified error condition.  This offer is null    
             EXEC SQL CREATE TABLE TEMPUS (TDATE       *an official interpretation.                           
             TIME,
               TTIMESTAMP TIMESTAMP, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 35
             SQLCODE" 999- java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 67

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             '011,
             SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "INSERT java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 29
             DISPLAY "  DATE '1993-08-24',"
             DISPLAY "  TIME '16:03:              java.lang.StringIndexOutOfBoundsException: Range [13, 1) out of bounds for length 68
                1993--24 :03:'"
             DISPLAY "  INTERVAL -'1-6' YEAR TO MONTH,"
             "'0 
             EXEC SQL INSERT java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 19
               '1993-08-24',
               '16:03                           DISPLAY  " "
                              MOVE 0 TO
               '1-6',
               '13 0:10java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             COMPUTE int1 = -1
              " DISPLAY"DATE98401'java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
LAY": TEMPUS;"
             EXEC SQL SELECT EXTRACT
: FROMTEMPUS                1984--'
              TO

           PERFORM CHCKOK
             DISPLAY "             DISPLAY "COMMITDISPLAY "COMMIT WORK;"
             if (LAY SQLCODE should  EXEC  COMMITWORK 
               MOVE 0 TO flag
             

             COMPUTE int1 = -1
             DISPLAY "SELECT COUNT(*) INTO :int1 FROM TEMPUS"
             DISPLAY "  WHERE (TTIMESTAMP -java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      -     ISPLAY""
             DISPLAY
EXECSELECT (*INTO int1  TEMPUS
               WHERE (TTIMESTAMP - TIMESTAMP  ISPLAY "               * pass ** "
               = ECSQL INTOHUjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
             MOVESQLCODE                TOflag

           PERFORM CHCKOK
             DISPLAY              END-IF
             if (int1  NOT =  1) then
               MOVE 0 TO flag
             END-IF

             COMPUTE int1 = -1
             DISPLAY "SELECT COUNT(*) INTO :int1             java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
             DISPLAY "  WHERE (TTIMESTAMP, TINT1) OVERLAPS"
             "(IMESTAMP '199502                ''--'')"
      -      " INTERVAL '1-6' YEAR TO MONTH);"
             EXEC SQL SELECT EXEC SQL INSERT INTO TSERR
               WHERE11,
  ==================java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
               )              EXECSQL WORKEND-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

             DISPLAY "ROLLBACK WORK;"
             EXEC SQL       ******************** END TEST0615               0 java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 36

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY DROPTABLETEMPUS "
             SQL TEMPUS CASCADE END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY              PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS
             EXEC SQL COMMITWORK END-EXEC
             SQLCODEDISPLAY "  CAST'-30AS;java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54

           PERFORM CHCKOK
DISPLAY "java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25

             if ( flag  =  1 ) then
               DISPLAY "                *** pass *** "
EXECDISPLAY"implementation-defined SQLSTATE .java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
VALUES'java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 TOSQL-COD
             else
               DISPLAY "       dml106.pco  *** fail
               EXEC              SQLSTATE      *This routine replaces valid im       
                 VALUES              (  NOT="22007)then
               SQLCODETO
               COMPUTE errcnt = errcnt + 1
             END-IF

             DISPLAY "==============      *                          SQLSTATE will be printed.      

              COMMIT END-EXEC
             MOVE SQLCODE TO SQL-COD
      ******************** END TEST0601 ********************
      ******************** BEGIN TEST0611 *******************
             MOVE 1 TO flag

             DISPLAY "                  TEST0611 "
             DISPLAY "    FIPS sizing, DATETIME data types (static)"
"eferences:java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 34
                  PUB127214.   
      -    " 5"
             DISPLAY "    ANSI SQL-1992 6.1 <data type> SR.25-26"
             DISPLAY "                                  LR.1.a"
             DISPLAY "                 10.1 <interval qualifier> SR 3&4"
             DISPLAY "   - - - - - - - - - - - java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11

             COMPUTE SQLCODE = -1
             MOVE "xxxxx"              MOVE SQLCODE TO

      *6.1 LR.1.a denies us the right to use <time precision> or  
      *<timestamp precision> in the declaration.  SR.25 says that 
      *<time precision> defaults to 0 and <timestamp precision>   
      *defaults to 6.                                             

             DISPLAY "CREATE TABLE TSFIPS ("
             DISPLAY "  FIPS1 TIME,"
                   *examining position 4 of char array NORMSQ 
                   *valid characters are 0-9, A-Z 
DISPLAY" FIPS4INTERVAL DAY()  SECOND6)"
             EXEC SQL CREATE TABLE TSFIPS (
               FIPS1 TIME,
                   HUTESTREPORT
               FIPS3 DATE,
                 END-EXEC
             MOVE SQLCODE               MOVE   SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
              SQLCODETO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             "NSERT java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 36
      ******************** END TEST0615 ********************
             DISPLAY "  TIMESTAMP '1996-08-24 16:03:00.999999',"
             DISPLAY "  INTERVAL -'99-6' YEAR (2) TO MONTH,"
             DISPLAY "  INTERVAL '99 0:10:00.999999' DAY (2) TO SECOND
      *(class = 01).  These equate to successful completion 
             EXEC SQL INSERT INTO TSFIPS VALUES (
               '16:
               TIMESTAMP '1996-08-24 16      *Test SQLCODE and SQLSTATE for normal completion. 
                '99-6,
    '9010:. ld be 0;its value is , QL-COD
             END-EXEC
OD

           PERFORM CHCKOK
             DISPLAY  " "

             COMPUTE  = -1
             DISPLAY "SELECT EXTRACT (SECOND FROM FIPS2)"
             DISPLAY "  * 1000000 - 999990 INTO :int1 FROM TSFIPS;"
             EXEC SQL SELECT EXTRACT 
               * 1000000 - 999990 INTO :int1 FROM TSFIPS END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY "int1 should be 9; its value is ", int1
    ifint1NOT = )then
               MOVE 0 TO flag
             END-IF

             COMPUTE int1 = -1
             COMPUTE int2 = -1
             DISPLAY "SELECT EXTRACT (YEAR FROM FIPS3),"
             DISPLAY "  EXTRACT (MONTH FROM FIPS3) INTO :int1, :int2"
             DISPLAY "  FROM TSFIPS;"
             EXEC SQL SELECT EXTRACT,
               EXTRACT INTO :int1, :int2
               FROM TSFIPS END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY "int1 should be -99; its value is            MOVE 3 TO norm1
             DISPLAY "int2 should be -6; its value is ", int2
             DISPLAY "Note:  The sign is specified by Subclause 6.6
          "GR.a."
             DISPLAY "  in ANSI SQL-1992."
             if (int1  NOT =  -99  OR  int2  NOT =  -6) then
               MOVE 0 TO flag
             END-IF

             COMPUTE java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 11
             COMPUTE int2 = -1
             DISPLAY "SELECT EXTRACT (DAY FROM FIPS4),"
             DISPLAY            (ORMSQ=SQLSTATE java.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 42
             DISPLAY "  INTO :int1, :int2 FROM TSFIPS;"
             EXEC SQL SELECT EXTRACT,
               EXTRACT * 1000000 - 999990           MOVE 4TO
               INTO :int1, :int2 FROM TSFIPS END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY "int1 should be 99; its))then
             DISPLAY             MOVE 0  norm1
 (   = 99  OR  int2NOT = 9 
               MOVE 0 TO flag
             END-IF

             DISPLAY "ROLLBACK WORK;"
             EXEC SQL ROLLBACK WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "DROP TABLE            PERFORM VARYING norm2 FROM1BY  UNTIL  norm2>36
             EXEC DROP TSFIPS  END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK      *implementation-defined subclasses are allowed for warnings 
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

if   =1)
               DISPLAY "                *** pass *** "
               EXEC SQL INSERT INTO HU.TESTREPORT
                 VALUES('0611','pass','PCO') END-EXEC
               MOVE SQLCODE TO SQL-COD
             else
               DISPLAY "       dml106.pco  *** fail *** "
               EXEC SQL INSERT INTO HU.TESTREPORT
                 VALUES('0611','fail','PCO') END-EXEC
               MOVE SQLCODE TO SQL-COD
               COMPUTE errcnt = errcnt + 1
             END-IF

             DISPLAY "==============================================="

             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD
      ******************** END TEST0611 ********************
      ******************** BEGIN TEST0613 *******************
             MOVE 1 TO flag

             DISPLAY "                  TEST0613 "
             DISPLAY "     <datetime value function> (static)"
             DISPLAY "References:"
             DISPLAY "    FIPS PUB 127-2 14.1 Transitional SQL features
      -    " 5, 20"
             DISPLAY "    ANSI SQL-1992 6.8 <datetime value function>"
             DISPLAY "                  6.8 GR.3"
             DISPLAY "   - - - - - - - - - - - - - - - - - - -"

             COMPUTE SQLCODE = -1
             MOVE "xxxxx" TO SQLSTATE

      *Support for timezones is not included in Transitional SQL 

             DISPLAY "CREATE TABLE TSSMALL ("
             DISPLAY "  SMALLD DATE,"
             DISPLAY "  SMALLT TIME,"
             DISPLAY "  SMALLTS TIMESTAMP);"

             EXEC SQL CREATE TABLE TSSMALL (
               SMALLD DATE,
               SMALLT TIME,
               SMALLTS TIMESTAMP) END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "INSERT INTO TSSMALL VALUES ("
             DISPLAY "  CURRENT_DATE, CURRENT_TIME, "
             DISPLAY "CURRENT_TIMESTAMP);"

             EXEC SQL INSERT INTO TSSMALL VALUES (
               CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP) END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "SELECT COUNT(*) INTO :int1"
             DISPLAY "FROM TSSMALL WHERE"
             DISPLAY "EXTRACT (YEAR FROM SMALLD) = EXTRACT (YEAR FROM
      -    " SMALLTS);"

             COMPUTE int1 = -1
             EXEC SQL SELECT COUNT(*) INTO :int1
               FROM TSSMALL WHERE
               EXTRACT = YEAR
             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

             DISPLAY "SELECT COUNT(*) INTO :int1"
             DISPLAY "FROM TSSMALL WHERE"
             DISPLAY "EXTRACT (MONTH FROM SMALLD) = EXTRACT (MONTH FROM
      -    " SMALLTS);"

             COMPUTE int1 = -1
             EXEC SQL SELECT COUNT(*) INTO :int1
               FROM TSSMALL WHERE
               EXTRACT = MONTH
             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

             DISPLAY "SELECT COUNT(*) INTO :int1"
             DISPLAY "FROM TSSMALL WHERE"
             DISPLAY "EXTRACT (DAY FROM SMALLD) = EXTRACT (DAY FROM
      -    " SMALLTS);"

             COMPUTE int1 = -1
             EXEC SQL SELECT COUNT(*) INTO :int1
               FROM TSSMALL WHERE
               EXTRACT = DAY
             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

             DISPLAY "SELECT COUNT(*) INTO :int1"
             DISPLAY "FROM TSSMALL WHERE"
             DISPLAY "EXTRACT (HOUR FROM SMALLT) = EXTRACT (HOUR FROM
      -    " SMALLTS);"

             COMPUTE int1 = -1
             EXEC SQL SELECT COUNT(*) INTO :int1
               FROM TSSMALL WHERE
               HOUR = EXTRACT
             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

             DISPLAY "SELECT COUNT(*) INTO :int1"
             DISPLAY "FROM TSSMALL WHERE"
             DISPLAY "EXTRACT (MINUTE FROM SMALLT) = EXTRACT (MINUTE
      -    " FROM SMALLTS);"

             COMPUTE int1 = -1
             EXEC SQL SELECT COUNT(*) INTO :int1
               FROM TSSMALL WHERE
               MINUTE = 
             SMALLTS 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

      *Time and timestamp have different fractional seconds precision 
      *and we can't assume truncation or rounding.                    

             COMPUTE int1 = -1
             DISPLAY "SELECT COUNT(*) INTO :int1"
             DISPLAY "FROM TSSMALL WHERE"
             DISPLAY "EXTRACT (SECOND FROM SMALLT) -"
             DISPLAY "EXTRACT (SECOND FROM SMALLTS) > -1"
             DISPLAY "AND EXTRACT (SECOND FROM SMALLT) -"
             DISPLAY "EXTRACT (SECOND FROM SMALLTS) < 1;"
             EXEC SQL SELECT COUNT(*) INTO :int1
               FROM TSSMALL WHERE
               SECOND -
               SECOND > -1
               and SECOND -
               SECOND < 1 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

             DISPLAY "ROLLBACK WORK;"
             EXEC SQL ROLLBACK WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "DROP TABLE TSSMALL CASCADE;"
             EXEC SQL DROP TABLE TSSMALL CASCADE END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             if ( flag  =  1 ) then
               DISPLAY "                *** pass *** "
               EXEC SQL INSERT INTO HU.TESTREPORT
                 VALUES('0613','pass','PCO') END-EXEC
               MOVE SQLCODE TO SQL-COD
             else
               DISPLAY "       dml106.pco  *** fail *** "
               EXEC SQL INSERT INTO HU.TESTREPORT
                 VALUES('0613','fail','PCO') END-EXEC
               MOVE SQLCODE TO SQL-COD
               COMPUTE errcnt = errcnt + 1
             END-IF

             DISPLAY "==============================================="

             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD
      ******************** END TEST0613 ********************
      ******************** BEGIN TEST0615 *******************
             MOVE 1 TO flag

             DISPLAY "                  TEST0615 "
             DISPLAY "     DATETIME-related SQLSTATE codes (static)"
             DISPLAY "References:"
             DISPLAY "    FIPS PUB 127-2 14.1 Transitional SQL features
      -    " 5, 20"
             DISPLAY "    ANSI SQL-1992 22.1 SQLSTATE"
             DISPLAY "                  6.14 GR.3.c"
             DISPLAY "                  9.2 GR.3.m"
             DISPLAY "    COR1 for 6.10 GR.9.a.ii GR.10.a.ii GR.11.a.ii"
             DISPLAY "   - - - - - - - - - - - - - - - - - - -"

             COMPUTE SQLCODE = -1
             MOVE "xxxxx" TO SQLSTATE

      *If this test is rejected at compile time for some reason which 
      *resembles the desired SQLSTATEs, you win.                      

      *Datetime field overflow = 22008:  add a one-year interval to   
      *    YEAR 9999 datetime (6.14 GR.3.c)                           
      *Interval field overflow = 22015:  insert interval with too     
      *    many digits in leading field (9.2 GR.3.m)                  
      *Invalid datetime format = 22007:  cast February 30 to datetime 
      *    (COR1 for 6.10 GR 9.a.ii, 10.a.ii, 11.a.ii)                

             DISPLAY "CREATE TABLE TSERR ("
             DISPLAY "  BADINT INTERVAL YEAR (2) TO MONTH,"
             DISPLAY "  BADDATE DATE);"

             EXEC SQL CREATE TABLE TSERR (
               BADINT TIME,
               BADDATE DATE) END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

      *                   NOTICE                             
      *The Standard is very clear on the fact that the YEAR  
      *field can't accept values below 1 or above 9999 in    
      *datetime items (see Table 10 and 6.14 GR.3.c).        
      *However, since it seems to us that a reasonable       
      *human being might want to implement YEAR with a       
      *small integer and permit the larger range to be used, 
      *you may replace the 9999 in the date literal below    
      *with as large an integer as you require to generate   
      *the specified error condition.  This offer is null    
      *and void if the range limitation on YEAR is upheld by 
      *an official interpretation.                           

      *DML106 TEd Hook #1 

             DISPLAY "INSERT INTO TSERR VALUES ("
             DISPLAY "  INTERVAL '0-11' YEAR TO MONTH,"
             DISPLAY "  DATE '9999-01-01' + INTERVAL '1-00' YEAR TO
      -    " MONTH);"

             EXEC SQL INSERT INTO TSERR VALUES (
               '0-11',
               '9999-01-01' + '1-00')
             END-EXEC
             MOVE SQLCODE TO SQL-COD

      *DML106 TEd Hook #2 

             DISPLAY "SQLCODE should be < 0; its value is ", SQL-COD
             if (SQLCODE  NOT <  0) then
               MOVE 0 TO flag
             END-IF

             DISPLAY "SQLSTATE should be 22008; its value is ", SQLSTATE
             if (SQLSTATE  NOT  =   "22008") then
               MOVE 0 TO flag
             END-IF

             DISPLAY "INSERT INTO TSERR VALUES ("
             DISPLAY "  INTERVAL '9999-11' YEAR TO MONTH,"
             DISPLAY "  DATE '1984-01-01');"

             EXEC SQL INSERT INTO TSERR VALUES (
               '9999-11',
               '1984-01-01') END-EXEC
             MOVE SQLCODE TO SQL-COD

      *DML106 TEd Hook #3 

             DISPLAY "SQLCODE should be < 0; its value is ", SQL-COD
             if (SQLCODE  NOT <  0) then
               MOVE 0 TO flag
             END-IF

             DISPLAY "SQLSTATE should be 22015; its value is ", SQLSTATE
             if (SQLSTATE  NOT  =   "22015") then
               MOVE 0 TO flag
             END-IF

             DISPLAY "INSERT INTO TSERR VALUES ("
             DISPLAY "  INTERVAL '1-11' YEAR TO MONTH,"
             DISPLAY "  CAST ('DATE ''1993-02-30''' AS DATE));"

             EXEC SQL INSERT INTO TSERR VALUES (
               '1-11',
               CAST ('DATE ''1993-02-30''' AS DATE)) END-EXEC
             MOVE SQLCODE TO SQL-COD

             DISPLAY "SQLCODE should be < 0; its value is ", SQL-COD
             if (SQLCODE  NOT <  0) then
               MOVE 0 TO flag
             END-IF

             DISPLAY "SQLSTATE should be 22007; its value is ", SQLSTATE
             if (SQLSTATE  NOT  =   "22007") then
               MOVE 0 TO flag
             END-IF

      *The above could be passed for the wrong reason if the uglified 
      *syntax is not supported.  Repeat with shorter syntax.          

             DISPLAY "INSERT INTO TSERR VALUES ("
             DISPLAY "  INTERVAL '1-11' YEAR TO MONTH,"
             DISPLAY "  CAST ('1993-02-30' AS DATE));"

             EXEC SQL INSERT INTO TSERR VALUES (
               '1-11',
               CAST ('1993-02-30' AS DATE)) END-EXEC
             MOVE SQLCODE TO SQL-COD

             DISPLAY "SQLCODE should be < 0; its value is ", SQL-COD
             if (SQLCODE  NOT <  0) then
               MOVE 0 TO flag
             END-IF

             DISPLAY "SQLSTATE should be 22007; its value is ", SQLSTATE
             if (SQLSTATE  NOT  =   "22007") then
               MOVE 0 TO flag
             END-IF

             DISPLAY "ROLLBACK WORK;"
             EXEC SQL ROLLBACK WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "DROP TABLE TSERR CASCADE;"
             EXEC SQL DROP TABLE TSERR CASCADE END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             DISPLAY "COMMIT WORK;"
             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD

           PERFORM CHCKOK
             DISPLAY  " "

             if ( flag  =  1 ) then
               DISPLAY "                *** pass *** "
               EXEC SQL INSERT INTO HU.TESTREPORT
                 VALUES('0615','pass','PCO') END-EXEC
               MOVE SQLCODE TO SQL-COD
             else
               DISPLAY "       dml106.pco  *** fail *** "
               EXEC SQL INSERT INTO HU.TESTREPORT
                 VALUES('0615','fail','PCO') END-EXEC
               MOVE SQLCODE TO SQL-COD
               COMPUTE errcnt = errcnt + 1
             END-IF

             DISPLAY "==============================================="

             EXEC SQL COMMIT WORK END-EXEC
             MOVE SQLCODE TO SQL-COD
      ******************** END TEST0615 ********************
      **** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
           STOP RUN.

      *    ****  Procedures for PERFORM statements

      *Test SQLCODE and SQLSTATE for normal completion. 
       CHCKOK.
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "SQLSTATE should be 00000; its value is ", SQLSTATE
             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 
           PERFORM VARYING 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
             GO TO EXIT-NOSUBCLASS
           END-IF

           MOVE 4 TO norm1
      *examining position 4 of char array NORMSQ 
      *valid characters are 0-9, A-Z 
           PERFORM VARYING 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 
           PERFORM VARYING 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.

Messung V0.5 in Prozent
C=95 H=96 G=95

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.21Angebot  (Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-10-11) ¤

*Eine klare Vorstellung vom Zielzustand






Normalansicht

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1127926
#Domains=2039723