Schau mal deinen SQL genau an, da ist ein cast zu viel drin!

Lass mal char(......) weg!

Die Funktion CHAR versucht nämlich einen CAST(... as char(1000000)) und das ist natürlich zu lang!

PS:
Auch der TRIM bei Digits ist unsinnig, da Digits keine Leerzeichen zurückgibt.