INPUT: -- DB2 8.1 SP 4 pers ed -- ########################################################## DROP TABLE chartest -- may give error (OK) CREATE TABLE chartest (charval1 CHAR(10) NOT NULL, charval2 CHAR(10) NOT NULL, varcharval VARCHAR(30) NOT NULL) INSERT INTO chartest VALUES ('aaa','aaa','aaa') INSERT INTO chartest VALUES ('aaaaaaaaaaaa','aaa','aaa') -- should give error SELECT * FROM chartest SELECT * FROM chartest WHERE charval1=varcharval SELECT charval1 || 'X' AS res FROM chartest SELECT LENGTH(charval1 || charval2) AS res FROM chartest SELECT LENGTH(charval1) + LENGTH(charval2) AS res FROM chartest OUTPUT: -- DB2 8.1 SP 4 pers ed -- ########################################################## DROP TABLE chartest -- may give error (OK) CREATE TABLE chartest (charval1 CHAR(10) NOT NULL, charval2 CHAR(10) NOT NULL, varcharval VARCHAR(30) NOT NULL)INSERT INTO chartest VALUES ('aaa','aaa','aaa') INSERT INTO chartest VALUES ('aaaaaaaaaaaa','aaa','aaa') -- should give error SELECT * FROM chartest SELECT * FROM chartest WHERE charval1=varcharval SELECT charval1 || 'X' AS res FROM chartest SELECT LENGTH(charval1 || charval2) AS res FROM chartest SELECT LENGTH(charval1) + LENGTH(charval2) AS res FROM chartest db2 => db2 => DB20000I The SQL command completed successfully. db2 => DB20000I The SQL command completed successfully. db2 => DB20000I The SQL command completed successfully. db2 => DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0433N Value "aaaaaaaaaaaa" is too long. SQLSTATE=22001 db2 => CHARVAL1 CHARVAL2 VARCHARVAL ---------- ---------- ------------------------------ aaa aaa aaa 1 record(s) selected. db2 => CHARVAL1 CHARVAL2 VARCHARVAL ---------- ---------- ------------------------------ aaa aaa aaa 1 record(s) selected. db2 => RES ----------- aaa X 1 record(s) selected. db2 => RES ----------- 20 1 record(s) selected. db2 => RES ----------- 20 1 record(s) selected.