**************************************************************** * * COMMENT SECTION * * DATE 1994/7/28 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. * * DML130.PCO * WRITTEN BY: David W. Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE * * This routine tests data type semantics with NULL and NOT * NULL and the Information Schema. * * REFERENCES * FIPS PUB 127-2 14.1 Transitional SQL * ANSI SQL-1992 * ****************************************************************
MOVE"FLATER "TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx EXECSQLSELECT USER INTO :uidx FROM HU.ECCO END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD if (uid NOT = uidx) then DISPLAY"ERROR: User ", uid " expected. User ", uidx "
- " connected" STOPRUN END-IF MOVE 0 TO errcnt
DISPLAY "SQL Test Suite, V6.0, Embedded COBOL, dml130.pco" DISPLAY "59-byte ID" DISPLAY"TEd Version #" *date_time print ACCEPT TO-DAY FROMDATE ACCEPT THE-TIME FROMTIME DISPLAY"Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME
******************** BEGIN TEST0678 ******************* MOVE 1 TO flag
DISPLAY" TEST0678 " DISPLAY"Data type semantics with NULL / NOT NULL" DISPLAY"References:" DISPLAY" F# 10 -- Implicit character casting" DISPLAY" 6.1 -- " DISPLAY" 12.4 -- Calls to a " DISPLAY" 9 -- Data assignment rules" DISPLAY" - - - - - - - - - - - - - - - - - - -"
COMPUTE SQLCODE = -1 MOVE"xxxxx"TO SQLSTATE
*This is a repeat of TEST0567 and TEST0576, but with NOT NULL an *in non-dynamic SQL
DISPLAY"CREATE TABLE CH1 (" DISPLAY" CH1A CHARACTER (10) NOT NULL," DISPLAY" CH1B CHARACTER NOT NULL," DISPLAY" CH1C CHAR (10) NOT NULL);" EXECSQL CREATE TABLE CH1 (
CH1A CHARACTER (10) NOTNULL,
CH1B CHARACTERNOTNULL,
CH1C CHAR (10) NOTNULL) END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE"xxxxxxxxxx"TO x1 MOVE"x"TO x2 MOVE"xxxxxxxxxx"TO x3 DISPLAY"SELECT CH1A, CH1B, CH1C" DISPLAY" INTO :x1, :x2, :x3 FROM CH1;" EXECSQLSELECT CH1A, CH1B, CH1C INTO :x1, :x2, :x3 FROM CH1 END-EXEC MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
*9.1 GR.3.c
DISPLAY"x1 should be 'FOO '; its value is '", x1, "'" DISPLAY"x2 should be ' '; its value is '", x2, "'" DISPLAY"x3 should be '0123456789'; its value is '", x3, "'"
if (x1 NOT = "FOO ") then MOVE 0 TO flag END-IF if (x2 NOT = " ") then MOVE 0 TO flag END-IF if (x3 NOT = "0123456789") then MOVE 0 TO flag END-IF
DISPLAY"x5 is too short." DISPLAY"SELECT CH1A, CH1B, CH1C" DISPLAY" INTO :x1, :x2, :x5 FROM CH1;" EXECSQLSELECT CH1A, CH1B, CH1C INTO :x1, :x2, :x5 FROM CH1 END-EXEC MOVE SQLCODE TO SQL-COD
DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD if (SQLCODE < 0) then MOVE 0 TO flag END-IF
DISPLAY"SQLSTATE should be 01004; its value is ", SQLSTATE if (SQLSTATE NOT = "01004") then MOVE 0 TO flag END-IF
DISPLAY"x1 should be 'FOO '; its value is '", x1, "'" DISPLAY"x2 should be ' '; its value is '", x2, "'" DISPLAY"x5 should be '0123'; its value is '", x5, "'"
if (x1 NOT = "FOO ") then MOVE 0 TO flag END-IF if (x2 NOT = " ") then MOVE 0 TO flag END-IF if (x5 NOT = "0123") then MOVE 0 TO flag END-IF
*9.2 GR.3.b.ii
DISPLAY"INSERT INTO CH1 VALUES ('FOO'," DISPLAY" 'F', 'LITTLETOOLONG');" EXECSQLINSERTINTO CH1 VALUES ('FOO', 'F', 'LITTLETOOLONG') 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 22001; its value is ", SQLSTATE *The subclass is significant! if (SQLSTATE NOT = "22001") then MOVE 0 TO flag END-IF
*9.2 GR.3.b.i
DISPLAY"DELETE FROM CH1;" EXECSQLDELETEFROM CH1 END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE"xxxxxxxxxx"TO x1 MOVE"x"TO x2 MOVE"xxxxxxxxxx"TO x3 DISPLAY"SELECT CH1A, CH1B, CH1C" DISPLAY" INTO :x1, :x2, :x3 FROM CH1;" EXECSQLSELECT CH1A, CH1B, CH1C INTO :x1, :x2, :x3 FROM CH1 END-EXEC MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK DISPLAY" "
DISPLAY"x1 should be 'FOO '; its value is '", x1, "'" DISPLAY"x2 should be 'F'; its value is '", x2, "'" DISPLAY"x3 should be 'BLANKS '; its value is '", x3, "'"
if (x1 NOT = "FOO ") then MOVE 0 TO flag END-IF if (x2 NOT = "F") then MOVE 0 TO flag END-IF if (x3 NOT = "BLANKS ") then MOVE 0 TO flag END-IF
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD ******************** END TEST0678 ******************** ******************** BEGIN TEST0679 ******************* MOVE 1 TO flag
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND TABLE_TYPE = 'BASE TABLE';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND TABLE_TYPE = 'BASE TABLE'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
COMPUTE int1 = -2 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.VIEWS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.VIEWS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
* FLAAG CHAR DEFAULT 'Y' MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'FLAAG' AND ORDINAL_POSITION =
- " 1" DISPLAY" AND COLUMN_DEF = '''Y''' AND DATA_TYPE =
- " 'CHARACTER'" DISPLAY" AND CHAR_MAX_LENGTH = 1 AND CHAR_OCTET_LENGTH" DISPLAY" > 0 AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'FLAAG'AND ORDINAL_POSITION = 1 AND COLUMN_DEF = '''Y'''AND DATA_TYPE = 'CHARACTER' AND CHAR_MAX_LENGTH = 1 AND CHAR_OCTET_LENGTH
> 0 AND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* KODE CHAR (5) NOT NULL MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'KODE' AND ORDINAL_POSITION =
- " 2" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'CHARACTER'" DISPLAY" AND CHAR_MAX_LENGTH = 5 AND CHAR_OCTET_LENGTH" DISPLAY" > 3 AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'NO';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'KODE'AND ORDINAL_POSITION = 2 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'CHARACTER' AND CHAR_MAX_LENGTH = 5 AND CHAR_OCTET_LENGTH
> 3 AND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'NO'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
* AMPL REAL DEFAULT 3 MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'AMPL' AND ORDINAL_POSITION =
- " 3" DISPLAY" AND COLUMN_DEF IS NOT NULL AND DATA_TYPE =
- " 'REAL'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC >= 8 AND NUM_PREC_RADIX" DISPLAY" = 2 AND NUM_SCALE IS NULL AND DATETIME_PREC IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'AMPL'AND ORDINAL_POSITION = 3 AND COLUMN_DEF ISNOTNULLAND DATA_TYPE = 'REAL' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC >= 8 AND NUM_PREC_RADIX
= 2 AND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* COORD DOUBLE PRECISION MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'COORD' AND ORDINAL_POSITION =
- " 4" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE = 'DOUBLE
- " PRECISION'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC > 8 AND NUM_PREC_RADIX" DISPLAY" = 2 AND NUM_SCALE IS NULL AND DATETIME_PREC IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'COORD'AND ORDINAL_POSITION = 4 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'DOUBLE PRECISION' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC > 8 AND NUM_PREC_RADIX
= 2 AND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* SWAY FLOAT MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'SWAY' AND ORDINAL_POSITION =
- " 5" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE = 'FLOAT'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC >= 8 AND NUM_PREC_RADIX" DISPLAY" = 2 AND NUM_SCALE IS NULL AND DATETIME_PREC IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'SWAY'AND ORDINAL_POSITION = 5 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'FLOAT' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC >= 8 AND NUM_PREC_RADIX
= 2 AND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* REVS INTEGER MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'REVS' AND ORDINAL_POSITION =
- " 6" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'INTEGER'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC > 0 AND NUM_SCALE = 0 AND" DISPLAY" (NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10)" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'REVS'AND ORDINAL_POSITION = 6 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'INTEGER' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC > 0 AND NUM_SCALE = 0 AND
(NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10) AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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
* PITCH SMALLINT MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'PITCH' AND ORDINAL_POSITION =
- " 7" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'SMALLINT'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC > 0 AND NUM_SCALE = 0 AND" DISPLAY" (NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10)" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'PITCH'AND ORDINAL_POSITION = 7 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'SMALLINT' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC > 0 AND NUM_SCALE = 0 AND
(NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10) AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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
* DEGREE NUMERIC (3, 2) MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'DEGREE' AND ORDINAL_POSITION
- " = 8" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'NUMERIC'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC = 3 AND NUM_SCALE = 2" DISPLAY" AND NUM_PREC_RADIX = 10" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'DEGREE'AND ORDINAL_POSITION = 8 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'NUMERIC' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC = 3 AND NUM_SCALE = 2 AND NUM_PREC_RADIX = 10 AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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
* RUDDER DECIMAL (2) MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'RUDDER' AND ORDINAL_POSITION
- " = 9" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'DECIMAL'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC >= 2 AND NUM_SCALE = 0" DISPLAY" AND NUM_PREC_RADIX = 10" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'RUDDER'AND ORDINAL_POSITION = 9 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'DECIMAL' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC >= 2 AND NUM_SCALE = 0 AND NUM_PREC_RADIX = 10 AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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;" EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DROP TABLE LOTSA_TYPES CASCADE;" EXECSQL DROP TABLE LOTSA_TYPES CASCADE END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0679','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" dml130.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0679','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD ******************** END TEST0679 ******************** ******************** BEGIN TEST0680 ******************* MOVE 1 TO flag
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"CREATE VIEW LOTSA_TYPES AS" DISPLAY" SELECT * FROM LT1, LT2;" EXECSQL CREATE VIEW LOTSA_TYPES AS SELECT * FROM LT1, LT2 END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND TABLE_TYPE = 'VIEW';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND TABLE_TYPE = 'VIEW'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.VIEWS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.VIEWS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES'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
* FLAAG CHAR DEFAULT 'Y' MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'FLAAG' AND ORDINAL_POSITION =
- " 1" DISPLAY" AND COLUMN_DEF = '''Y''' AND DATA_TYPE =
- " 'CHARACTER'" DISPLAY" AND CHAR_MAX_LENGTH = 1 AND CHAR_OCTET_LENGTH" DISPLAY" > 0 AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'FLAAG'AND ORDINAL_POSITION = 1 AND COLUMN_DEF = '''Y'''AND DATA_TYPE = 'CHARACTER' AND CHAR_MAX_LENGTH = 1 AND CHAR_OCTET_LENGTH
> 0 AND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* KODE CHAR (5) NOT NULL MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'KODE' AND ORDINAL_POSITION =
- " 2" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'CHARACTER'" DISPLAY" AND CHAR_MAX_LENGTH = 5 AND CHAR_OCTET_LENGTH" DISPLAY" > 0 AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'NO';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'KODE'AND ORDINAL_POSITION = 2 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'CHARACTER' AND CHAR_MAX_LENGTH = 5 AND CHAR_OCTET_LENGTH
> 0 AND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'NO'END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
* AMPL REAL DEFAULT 3 MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'AMPL' AND ORDINAL_POSITION =
- " 3" DISPLAY" AND COLUMN_DEF IS NOT NULL AND DATA_TYPE =
- " 'REAL'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC >= 8 AND NUM_PREC_RADIX" DISPLAY" = 2 AND NUM_SCALE IS NULL AND DATETIME_PREC IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'AMPL'AND ORDINAL_POSITION = 3 AND COLUMN_DEF ISNOTNULLAND DATA_TYPE = 'REAL' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC >= 8 AND NUM_PREC_RADIX
= 2 AND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* COORD DOUBLE PRECISION MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'COORD' AND ORDINAL_POSITION =
- " 4" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE = 'DOUBLE
- " PRECISION'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC > 8 AND NUM_PREC_RADIX" DISPLAY" = 2 AND NUM_SCALE IS NULL AND DATETIME_PREC IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'COORD'AND ORDINAL_POSITION = 4 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'DOUBLE PRECISION' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC > 8 AND NUM_PREC_RADIX
= 2 AND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* SWAY FLOAT MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'SWAY' AND ORDINAL_POSITION =
- " 5" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE = 'FLOAT'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC >= 8 AND NUM_PREC_RADIX" DISPLAY" = 2 AND NUM_SCALE IS NULL AND DATETIME_PREC IS" DISPLAY" NULL AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC
- " IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'SWAY'AND ORDINAL_POSITION = 5 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'FLOAT' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC >= 8 AND NUM_PREC_RADIX
= 2 AND NUM_SCALE ISNULLAND DATETIME_PREC IS NULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* REVS INTEGER MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'REVS' AND ORDINAL_POSITION =
- " 6" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'INTEGER'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC > 0 AND NUM_SCALE = 0 AND" DISPLAY" (NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10)" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'REVS'AND ORDINAL_POSITION = 6 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'INTEGER' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC > 0 AND NUM_SCALE = 0 AND
(NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10) AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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
* PITCH SMALLINT MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'PITCH' AND ORDINAL_POSITION =
- " 7" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'SMALLINT'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC > 0 AND NUM_SCALE = 0 AND" DISPLAY" (NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10)" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'PITCH'AND ORDINAL_POSITION = 7 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'SMALLINT' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC > 0 AND NUM_SCALE = 0 AND
(NUM_PREC_RADIX = 2 OR NUM_PREC_RADIX = 10) AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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
* DEGREE NUMERIC (3, 2) MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'DEGREE' AND ORDINAL_POSITION
- " = 8" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'NUMERIC'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC = 3 AND NUM_SCALE = 2" DISPLAY" AND NUM_PREC_RADIX = 10" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'DEGREE'AND ORDINAL_POSITION = 8 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'NUMERIC' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC = 3 AND NUM_SCALE = 2 AND NUM_PREC_RADIX = 10 AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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
* RUDDER DECIMAL (2) MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_TYPES'" DISPLAY" AND COLUMN_NAME = 'RUDDER' AND ORDINAL_POSITION
- " = 9" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'DECIMAL'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC >= 2 AND NUM_SCALE = 0" DISPLAY" AND NUM_PREC_RADIX = 10" DISPLAY" AND DATETIME_PREC IS NULL AND INTERVAL_TYPE IS
- " NULL AND" DISPLAY" INTERVAL_PREC IS NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_TYPES' AND COLUMN_NAME = 'RUDDER'AND ORDINAL_POSITION = 9 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'DECIMAL' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC >= 2 AND NUM_SCALE = 0 AND NUM_PREC_RADIX = 10 AND DATETIME_PREC ISNULLAND INTERVAL_TYPE ISNULLAND
INTERVAL_PREC ISNULLAND IS_NULLABLE = 'YES'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;" EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DROP TABLE LT1 CASCADE;" EXECSQL DROP TABLE LT1 CASCADE END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DROP TABLE LT2 CASCADE;" EXECSQL DROP TABLE LT2 CASCADE END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0680','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" dml130.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0680','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD ******************** END TEST0680 ******************** ******************** BEGIN TEST0682 ******************* MOVE 1 TO flag
DISPLAY"CREATE TABLE LOTSA_DATETIMES (" DISPLAY" C1 DATE, C2 TIME, C3 TIMESTAMP," DISPLAY" C4 INTERVAL YEAR, C5 INTERVAL MONTH, C6 INTERVAL
- " DAY," DISPLAY" C7 INTERVAL HOUR, C8 INTERVAL MINUTE, C9
- " INTERVAL SECOND," DISPLAY" C10 INTERVAL YEAR TO MONTH," DISPLAY" C11 INTERVAL DAY TO HOUR," DISPLAY" C12 INTERVAL DAY TO MINUTE," DISPLAY" C13 INTERVAL DAY TO SECOND," DISPLAY" C14 INTERVAL HOUR TO MINUTE," DISPLAY" C15 INTERVAL HOUR TO SECOND," DISPLAY" C16 INTERVAL MINUTE TO SECOND);" EXECSQL CREATE TABLE LOTSA_DATETIMES (
C1 DATE, C2 TIME, C3 TIMESTAMP,
C4 INTERVAL YEAR, C5 INTERVAL MONTH, C6 INTERVAL DAY,
C7 INTERVAL HOUR, C8 INTERVAL MINUTE, C9 INTERVAL SECOND,
C10 INTERVAL YEAR TO MONTH,
C11 INTERVAL DAYTO HOUR,
C12 INTERVAL DAYTO MINUTE,
C13 INTERVAL DAYTO SECOND,
C14 INTERVAL HOUR TO MINUTE,
C15 INTERVAL HOUR TO SECOND,
C16 INTERVAL MINUTE TO SECOND) END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"COMMIT WORK;" EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES" DISPLAY" WHERE TABLE_SCHEM = 'FLATER'" DISPLAY" AND TABLE_NAME = 'LOTSA_DATETIMES'" DISPLAY" AND TABLE_TYPE = 'BASE TABLE';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.TABLES
WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME = 'LOTSA_DATETIMES' AND TABLE_TYPE = 'BASE TABLE'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
*The Standard specifies that DATETIME_PREC is not null *for the DATE type. It does not explain what significance *it could possibly have.
* C1 DATE MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_DATETIMES'" DISPLAY" AND COLUMN_NAME = 'C1' AND ORDINAL_POSITION = 1" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE = 'DATE'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS" DISPLAY" NOT NULL AND INTERVAL_TYPE IS NULL AND
- " INTERVAL_PREC IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_DATETIMES' AND COLUMN_NAME = 'C1'AND ORDINAL_POSITION = 1 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'DATE' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC IS NOTNULLAND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
*Precisions are specified by 6.1 SR.25
* C2 TIME MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_DATETIMES'" DISPLAY" AND COLUMN_NAME = 'C2' AND ORDINAL_POSITION = 2" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE = 'TIME'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " = 0" DISPLAY" AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_DATETIMES' AND COLUMN_NAME = 'C2'AND ORDINAL_POSITION = 2 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'TIME' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC = 0 AND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
* C3 TIMESTAMP MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_DATETIMES'" DISPLAY" AND COLUMN_NAME = 'C3' AND ORDINAL_POSITION = 3" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'TIMESTAMP'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " = 6" DISPLAY" AND INTERVAL_TYPE IS NULL AND INTERVAL_PREC IS" DISPLAY" NULL AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_DATETIMES' AND COLUMN_NAME = 'C3'AND ORDINAL_POSITION = 3 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'TIMESTAMP' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC = 6 AND INTERVAL_TYPE ISNULLAND INTERVAL_PREC IS NULLAND IS_NULLABLE = 'YES'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
*Interval leading field precision: 10.1 SR.5
* C4 INTERVAL YEAR MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_DATETIMES'" DISPLAY" AND COLUMN_NAME = 'C4' AND ORDINAL_POSITION = 4" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'INTERVAL'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS NOT NULL" DISPLAY" AND INTERVAL_TYPE = 'YEAR' AND INTERVAL_PREC =
- " 2" DISPLAY" AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_DATETIMES' AND COLUMN_NAME = 'C4'AND ORDINAL_POSITION = 4 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'INTERVAL' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC ISNOT NULL AND INTERVAL_TYPE = 'YEAR'AND INTERVAL_PREC = 2 AND IS_NULLABLE = 'YES'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
* C5 INTERVAL MONTH MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_DATETIMES'" DISPLAY" AND COLUMN_NAME = 'C5' AND ORDINAL_POSITION = 5" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'INTERVAL'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS NOT NULL" DISPLAY" AND INTERVAL_TYPE = 'MONTH' AND INTERVAL_PREC =
- " 2" DISPLAY" AND IS_NULLABLE = 'YES';" EXECSQLSELECTCOUNT(*) INTO :int1 FROM INFO_SCHEM.COLUMNS
WHERE TABLE_SCHEM = 'FLATER'AND TABLE_NAME = 'LOTSA_DATETIMES' AND COLUMN_NAME = 'C5'AND ORDINAL_POSITION = 5 AND COLUMN_DEF ISNULLAND DATA_TYPE = 'INTERVAL' AND CHAR_MAX_LENGTH ISNULLAND CHAR_OCTET_LENGTH ISNULLAND NUM_PREC ISNULLAND NUM_PREC_RADIX ISNULLAND NUM_SCALE ISNULLAND DATETIME_PREC ISNOT NULL AND INTERVAL_TYPE = 'MONTH'AND INTERVAL_PREC = 2 AND IS_NULLABLE = 'YES'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
* C6 INTERVAL DAY MOVE 0 TO int1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM
- " INFO_SCHEM.COLUMNS" DISPLAY" WHERE TABLE_SCHEM = 'FLATER' AND TABLE_NAME =
- " 'LOTSA_DATETIMES'" DISPLAY" AND COLUMN_NAME = 'C6' AND ORDINAL_POSITION = 6" DISPLAY" AND COLUMN_DEF IS NULL AND DATA_TYPE =
- " 'INTERVAL'" DISPLAY" AND CHAR_MAX_LENGTH IS NULL AND
- " CHAR_OCTET_LENGTH" DISPLAY" IS NULL AND NUM_PREC IS NULL AND NUM_PREC_RADIX" DISPLAY" IS NULL AND NUM_SCALE IS NULL AND DATETIME_PREC
- " IS NOT NULL" DISPLAY" AND INTERVAL_TYPE = 'DAY' AND INTERVAL_PREC = 2"
--> --------------------
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 ist noch experimentell.