В версиях DB2 для Linux, UNIX и Windows, предшествующих 9.7, DB2 применяла строгую типизацию.Поэтому вы не можете объединить VARCHAR и INTEGER без предварительного приведения INTEGER к строке.
SELECT
'ALTER TABLE ' CONCAT TABNAME
CONCAT ' ALTER COLUMN ' CONCAT COLNAME
CONCAT ' SET DATA TYPE ' CONCAT TYPENAME
CONCAT '(' CONCAT char(LENGTH) CONCAT ');'
FROM
SYSCAT.COLUMNS
WHERE
TABSCHEMA= 'ABC'
AND TYPENAME = 'VARCHAR'
AND TABNAME = 'XYZ';
В DB2 9.7 IBM добавила неявное приведение, поэтому ваш запрос будет работать как написано.