Starte mal den DEBUG-Mode, dann wird der CAST-Fehler meist im Joblog ausgewiesen.
Schuld ist der Autocast. D.h., in einer der Where- oder Joinklauseln muss eine Typanpassung erfolgen, die dann aber nicht passt.

Dein Case-Konstrukt kann auch vereinfacht werden:

coalesce( (select ......), (Select .....), (Select .....) )

Coalesce nimmt den ersten Wert, der nicht NULL ist.
Noch besser und effektiver wäre, wenn du die 3 Selects per Left join anhängst und dann per Coalesce auswählst:

coalesce(t1.Art2bez, t2.ArtBez, ...)
:
left join art2p t1 ...
left join xxx t2 ...

Dies könnte sogar performanter sein, auf jeden Fall übersichtlicher.