Decimal ist PACKED, Numeric ist ZONED.
Die Feldtypen sind also unterschiedlich.

Manchmal hilft auch ein eigenes Casting:

left join file b on decimal(a.key, n, m)=b.key ...

Also eine Typanpassung der linken Seite der Beziehung.
Dies gilt auch für Numerisch nach Char, umgekehrt nur bedingt, wenn das Zeichenfeld sicher nur numerische Werte enthält.