blob: f613547284d070d7336e894a8295b6adc8121605 [file] [log] [blame]
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>