📄 dml149.out
字号:
ij> AUTOCOMMIT OFF;ij> -- MODULE DML149 -- SQL Test Suite, V6.0, Interactive SQL, dml149.sql-- 59-byte ID-- TEd Version #-- AUTHORIZATION FLATER set schema FLATER;0 rows inserted/updated/deletedij> --O SELECT USER FROM HU.ECCO; VALUES USER;1 --------------------------------------------------------------------------------------------------------------------------------FLATER ij> -- RERUN if USER value does not match preceding AUTHORIZATION comment--O ROLLBACK WORK;-- date_time print-- TEST:0561 Double SET TRANSACTION! ROLLBACK WORK;ij> -- PASS:0561 If successful completion?--O SET TRANSACTION READ ONLY;-- PASS:0561 If successful completion?--O SET TRANSACTION READ WRITE;-- PASS:0561 If successful completion?--O INSERT INTO USIG VALUES (10, 20);-- PASS:0561 If 1 row is inserted?--O ROLLBACK WORK;-- PASS:0561 If successful completion?--O SET TRANSACTION READ WRITE;-- PASS:0561 If successful completion?--O SET TRANSACTION READ ONLY;-- PASS:0561 If successful completion?--O INSERT INTO USIG VALUES (10, 20);-- PASS:0561 If ERROR, invalid transaction state, 0 rows inserted?--O ROLLBACK WORK;-- PASS:0561 If successful completion?-- END TEST >>> 0561 <<< END TEST-- *********************************************-- TEST:0846 Feature 20, CAST functions (static) nits! CREATE TABLE NO_DUCK ( GOOSE NUMERIC (4, 2), ALBATROSS FLOAT, SEAGULL INT, OSPREY CHAR (10));0 rows inserted/updated/deletedij> -- PASS:0846 If table is created? COMMIT WORK;ij> -- NOTE:0846 CAST (100 AS NUMERIC (2)) loses the leading significant digit SELECT CAST (100 AS NUMERIC (2)) FROM HU.ECCO;1 ----ERROR 22003: The resulting value is outside the range for the data type DECIMAL/NUMERIC(2,0).ij> -- PASS:0846 If ERROR, numeric value out of range, 0 rows selected? SELECT CAST (100.5 AS DECIMAL (3)) FROM HU.ECCO;1 ----100 ij> -- PASS:0846 If 1 row selected and value is 100 or 101? INSERT INTO NO_DUCK VALUES ( CAST (' 23.23 ' AS NUMERIC (4, 2)), 1.57E-1, -9, 'QUACK');1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is inserted? SELECT COUNT(*) FROM NO_DUCK WHERE GOOSE = 23.23;1 -----------1 ij> -- PASS:0846 If count = 1?-- No cast from CHAR to FLOAT allowed-- DELETE FROM NO_DUCK-- WHERE ALBATROSS - CAST (' 15.5E0 ' AS FLOAT) < 3E-1;-- PASS:0846 If 1 row is deleted?-- Instead to keep the rest of the test in sync we will:DELETE FROM NO_DUCKWHERE ALBATROSS - CAST (15.5E0 AS FLOAT) < 3E-1;1 row inserted/updated/deletedij> SELECT COUNT(*) FROM NO_DUCK;1 -----------0 ij> -- PASS:0846 If count = 0? INSERT INTO NO_DUCK--O SELECT 22.22, CAST (C1 AS FLOAT), 0, C1 FROM HU.ECCO; SELECT 22.22, CAST (C1 AS FLOAT), 0, C1 FROM ECCO;ERROR 42X05: Table 'ECCO' does not exist.ij> -- PASS:0846 If ERROR, invalid character value for cast, 0 rows inserted? INSERT INTO NO_DUCK SELECT 22.22, 2.222E1, CAST (C1 AS INT), 'QUACK!' FROM HU.ECCO;ERROR 22018: Invalid character string format for type INTEGER.ij> -- PASS:0846 If ERROR, invalid character value for cast, 0 rows inserted? SELECT CAST (CAST (3 AS DEC (5, 3)) AS CHAR (5)) FROM HU.ECCO;1 -----3.000ij> -- PASS:0846 If 1 row selected and value is '3.000'? INSERT INTO NO_DUCK VALUES ( 12.00, -10.5E0, 12, 'QUACK!');1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is inserted? UPDATE NO_DUCK SET OSPREY = CAST (GOOSE AS CHAR (10)) WHERE SEAGULL = CAST (GOOSE AS DEC);1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is updated? SELECT OSPREY FROM NO_DUCK;OSPREY ----------12.00 ij> -- PASS:0846 If 1 row selected and OSPREY = '12.00 '? SELECT OSPREY FROM NO_DUCK WHERE OSPREY < CAST (SEAGULL + 1 AS CHAR (10)) AND OSPREY = CAST (GOOSE * 1 AS CHAR (10));OSPREY ----------12.00 ij> -- PASS:0846 If 1 row selected and OSPREY = '12.00 '? UPDATE NO_DUCK SET OSPREY = CAST (-SEAGULL AS CHAR (10));1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is updated? SELECT OSPREY FROM NO_DUCK;OSPREY -----------12 ij> -- PASS:0846 If 1 row selected and OSPREY = '-12 '?-- NOTE:0846 Expected value -12.00 is too long for CHAR (5) cast SELECT CAST (-GOOSE AS CHAR (5)) FROM NO_DUCK;1 ------12.0ij> -- PASS:0846 If ERROR, string data, right truncation, 0 rows selected? UPDATE NO_DUCK SET ALBATROSS = 0.0;1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is updated? SELECT CAST (-ALBATROSS AS CHAR (5)) FROM NO_DUCK;ERROR 42846: Cannot convert types 'DOUBLE' to 'CHAR'.ij> -- PASS:0846 If 1 row selected and value is '0E0 '? SELECT CAST (0230E-1 AS CHAR (10)) FROM HU.ECCO;ERROR 42846: Cannot convert types 'DOUBLE' to 'CHAR'.ij> -- PASS:0846 If 1 row selected and value is '2.3E1 '? SELECT CAST (0230E+1 AS CHAR (10)) FROM HU.ECCO;ERROR 42846: Cannot convert types 'DOUBLE' to 'CHAR'.ij> -- PASS:0846 If 1 row selected and value is '2.3E3 '? DELETE FROM NO_DUCK;1 row inserted/updated/deletedij> INSERT INTO NO_DUCK VALUES ( 0.00, -10.5E0, -0, 'QUACK!');1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is inserted? UPDATE NO_DUCK SET OSPREY = CAST (ALBATROSS AS CHAR (10)) WHERE GOOSE = CAST (SEAGULL AS NUMERIC (2));ERROR 42846: Cannot convert types 'DOUBLE' to 'CHAR'.ij> -- PASS:0846 If 1 row is updated? SELECT OSPREY FROM NO_DUCK;OSPREY ----------QUACK! ij> -- PASS:0846 If 1 row selected and OSPREY = '-1.05E1 '? UPDATE NO_DUCK SET ALBATROSS = -0.5;1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is updated? UPDATE NO_DUCK SET OSPREY = CAST (ALBATROSS AS CHAR (10));ERROR 42846: Cannot convert types 'DOUBLE' to 'CHAR'.ij> -- PASS:0846 If 1 row is updated? SELECT OSPREY FROM NO_DUCK;OSPREY ----------QUACK! ij> -- PASS:0846 If 1 row selected and OSPREY = '-5E-1 '? UPDATE NO_DUCK SET OSPREY = CAST (-ALBATROSS AS CHAR (10));ERROR 42846: Cannot convert types 'DOUBLE' to 'CHAR'.ij> -- PASS:0846 If 1 row is updated? SELECT OSPREY FROM NO_DUCK;OSPREY ----------QUACK! ij> -- PASS:0846 If 1 row selected and OSPREY = '5E-1 '?-- NOTE:0846 Expected value -5E-1 is too long for CHAR (4) cast SELECT CAST (ALBATROSS AS CHAR (4)) FROM NO_DUCK;ERROR 42846: Cannot convert types 'DOUBLE' to 'CHAR'.ij> -- PASS:0846 If ERROR, string data, right truncation, 0 rows selected? SELECT CAST (NULL AS CHAR (10)), GOOSE FROM NO_DUCK WHERE SEAGULL = 0 UNION SELECT OSPREY, CAST (SEAGULL AS NUMERIC (4, 2)) FROM NO_DUCK WHERE GOOSE > 10000;1 |2 ------------------NULL |0.00 ij> -- PASS:0846 If 1 row selected and first value is NULL? UPDATE NO_DUCK SET GOOSE = CAST (NULL AS NUMERIC (2, 2));1 row inserted/updated/deletedij> -- PASS:0846 If 1 row is updated? SELECT COUNT(*) FROM NO_DUCK WHERE GOOSE IS NULL;1 -----------1 ij> -- PASS:0846 If count = 1? SELECT CAST (GOOSE AS INT) FROM NO_DUCK;1 -----------NULL ij> -- PASS:0846 If 1 row selected and value is NULL? ROLLBACK WORK;ij> --O DROP TABLE NO_DUCK CASCADE; DROP TABLE NO_DUCK ;0 rows inserted/updated/deletedij> COMMIT WORK;ij> -- END TEST >>> 0846 <<< END TEST-- *************************************************////END-OF-MODULE;ij>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -