... das Problem sind Literale, die haben keinen expliziten Typ, da muss sich SQL einen auswürfeln (da mag es ein Regelwerk geben, aber warum soll man sich das Leben schwer machen...)

bei mir jedenfalls:
select 'a' || digits(20121016) || 'e'
from sysibm.sysdummy1

String Expression
a0020121016e
******** End of data ********

select 'a' || digits(dec(20121016, 8, 0)) || 'e'
from sysibm.sysdummy1

String Expression
a20121016e
******** End of data ********

entweder ist dein Feld dec(10, 0) oder das DB2/400 hat einen Schuss.

D*B