| ij> AUTOCOMMIT OFF; |
| ij> -- MODULE DML081 |
| |
| -- SQL Test Suite, V6.0, Interactive SQL, dml081.sql |
| -- 59-byte ID |
| -- TEd Version # |
| |
| -- AUTHORIZATION SCHANZLE |
| set schema SCHANZLE; |
| 0 rows inserted/updated/deleted |
| ij> --O SELECT USER FROM HU.ECCO; |
| VALUES USER; |
| 1 |
| -------------------------------------------------------------------------------------------------------------------------------- |
| SCHANZLE |
| ij> -- RERUN if USER value does not match preceding AUTHORIZATION comment |
| |
| -- date_time print |
| |
| -- NOTE Direct support for SQLCODE or SQLSTATE is not required |
| -- NOTE in Interactive Direct SQL, as defined in FIPS 127-2. |
| -- NOTE ********************* instead *************************** |
| -- NOTE If a statement raises an exception condition, |
| -- NOTE then the system shall display a message indicating that |
| -- NOTE the statement failed, giving a textual description |
| -- NOTE of the failure. |
| -- NOTE If a statement raises a completion condition that is a |
| -- NOTE "warning" or "no data", then the system shall display |
| -- NOTE a message indicating that the statement completed, |
| -- NOTE giving a textual description of the "warning" or "no data." |
| |
| -- TEST:0487 SQLSTATE 00000: successful completion! |
| |
| --O SELECT COUNT(*) |
| SELECT * |
| FROM HU.WORKS; |
| EM&|PN&|HOURS |
| -------------- |
| E1 |P1 |40 |
| E1 |P2 |20 |
| E1 |P3 |80 |
| E1 |P4 |20 |
| E1 |P5 |12 |
| E1 |P6 |12 |
| E2 |P1 |40 |
| E2 |P2 |80 |
| E3 |P2 |20 |
| E4 |P2 |20 |
| E4 |P4 |40 |
| E4 |P5 |80 |
| ij> -- PASS:0487 If count = 12? |
| -- PASS:0487 OR SQLSTATE = 00000: successful completion? |
| |
| -- END TEST >>> 0487 <<< END TEST |
| -- ********************************************* |
| |
| -- TEST:0488 SQLSTATE 21000: cardinality violation! |
| |
| --O SELECT COUNT(*) |
| SELECT * |
| FROM HU.WORKS |
| WHERE PNUM = (SELECT PNUM |
| FROM HU.WORKS |
| WHERE HOURS = 80); |
| ERROR 21000: Scalar subquery is only allowed to return a single row. |
| ij> -- PASS:0488 If ERROR, cardinality violation, 0 rows selected? |
| -- PASS:0488 OR SQLSTATE = 21000 OR SQLCODE < 0? |
| |
| -- END TEST >>> 0488 <<< END TEST |
| -- ********************************************* |
| |
| -- TEST:0489 SQLSTATE 02000: no data! |
| |
| SELECT GRADE |
| FROM HU.STAFF |
| WHERE EMPNUM = 'xx'; |
| GRADE |
| ----- |
| ij> -- PASS:0489 If 0 rows selected? |
| -- PASS:0489 OR SQLSTATE = 02000: no data OR SQLCODE = 100? |
| |
| DELETE FROM HU.STAFF |
| WHERE GRADE = 11; |
| 0 rows inserted/updated/deleted |
| WARNING 02000: No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. |
| ij> -- PASS:0489 If 0 rows deleted? |
| -- PASS:0489 OR SQLSTATE = 02000: no data OR SQLCODE = 100? |
| |
| INSERT INTO HU.STAFF (EMPNUM,GRADE) |
| SELECT EMPNUM, 9 |
| FROM HU.WORKS |
| WHERE PNUM = 'x9'; |
| 0 rows inserted/updated/deleted |
| ij> -- PASS:0489 If 0 rows inserted? |
| -- PASS:0489 OR SQLSTATE = 02000: no data OR SQLCODE = 100? |
| |
| UPDATE HU.STAFF SET CITY = 'Ho' |
| WHERE GRADE = 15; |
| 0 rows inserted/updated/deleted |
| WARNING 02000: No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. |
| ij> -- PASS:0489 If 0 rows updated? |
| -- PASS:0489 OR SQLSTATE = 02000: no data OR SQLCODE = 100? |
| |
| -- restore |
| ROLLBACK WORK; |
| ij> -- END TEST >>> 0489 <<< END TEST |
| -- ********************************************* |
| |
| -- TEST:0490 SQLSTATE 22012: data exception/division by zero! |
| |
| -- setup |
| INSERT INTO HU.STAFF |
| VALUES ('E6','Fidel',0,'Havana'); |
| 1 row inserted/updated/deleted |
| ij> --O SELECT COUNT(*) |
| SELECT * |
| FROM HU.STAFF |
| WHERE EMPNAME = 'Fidel' AND 16/GRADE > 2; |
| EM&|EMPNAME |GRADE|CITY |
| ---------------------------------------------- |
| ERROR 22012: Attempt to divide by zero. |
| ij> -- PASS:0490 If ERROR, data exception/division by zero, 0 rows selected? |
| -- PASS:0490 OR SQLSTATE = 22012 OR SQLCODE < 0? |
| |
| SELECT 16/GRADE |
| FROM HU.STAFF |
| WHERE EMPNAME = 'Fidel'; |
| 1 |
| ---------------------------------- |
| ERROR 22012: Attempt to divide by zero. |
| ij> -- PASS:0490 If ERROR, data exception/division by zero, 0 rows selected? |
| -- PASS:0490 OR SQLSTATE = 22012 OR SQLCODE < 0? |
| |
| SELECT COUNT(*) |
| FROM HU.STAFF |
| GROUP BY CITY HAVING SUM(GRADE/0) > 44; |
| ERROR 22012: Attempt to divide by zero. |
| ij> -- PASS:0490 If ERROR, data exception/division by zero, 0 rows selected? |
| -- PASS:0490 OR SQLSTATE = 22012 OR SQLCODE < 0? |
| |
| --O SELECT COUNT(*) |
| SELECT * |
| FROM HU.STAFF WHERE GRADE = |
| (SELECT 16/GRADE |
| FROM HU.STAFF |
| WHERE EMPNUM = 'E6'); |
| ERROR 22012: Attempt to divide by zero. |
| ij> -- PASS:0490 If ERROR, data exception/division by zero, 0 rows selected? |
| -- PASS:0490 OR SQLSTATE = 22012 OR SQLCODE < 0? |
| |
| UPDATE HU.STAFF |
| SET GRADE = GRADE/0 |
| WHERE GRADE = 12; |
| ERROR 22012: Attempt to divide by zero. |
| ij> -- PASS:0490 If ERROR, data exception/division by zero, 0 rows updated? |
| -- PASS:0490 OR SQLSTATE = 22012 OR SQLCODE < 0? |
| |
| INSERT INTO HU.STAFF |
| SELECT 'X','Y',HOURS/0,'z' |
| FROM HU.WORKS |
| WHERE PNUM = 'P6'; |
| ERROR 22012: Attempt to divide by zero. |
| ij> -- PASS:0490 If ERROR, data exception/division by zero, 0 rows inserted? |
| -- PASS:0490 OR SQLSTATE = 22012 OR SQLCODE < 0? |
| |
| -- restore |
| ROLLBACK WORK; |
| ij> -- END TEST >>> 0490 <<< END TEST |
| -- ********************************************* |
| |
| -- NO_TEST:0502 SQLSTATE 24000: invalid cursor state! |
| |
| -- Testing cursors |
| |
| -- *************************************************////END-OF-MODULE |
| ; |
| ij> |