Das Euro-Zeichen ist tatsächlich ein Problem und kann nicht so einfach übernommen werden.
Bei der ODBC- (auch OLEDB-) Verbindung wird die Systemsprache als CCSID automatisch gesetzt. Bei Deutsch ist das nun mal 273.
Desweiteren liegt es an der CCSID der Datei.

Wenn nun ein Terminal mit 1141 das Euro-Zeichen eingibt, die Datei aber auf 273 steht, kann leider kein Eurozeichen zurückkommen.
Da nun SQL auch von Datei in Job-CCSID wandelt muss der Umweg über Unicode genommen werden.
Hier hilft nun mal wieder nur der berühmte 3-fach-cast:

cast(cast(cast(feld as char(nn) ccsid 65535) as char(nn) ccsid 1141) as graphic(nn) ccsid 13488)

Da die Daten ja in 1141 eingegeben sind aber in der Datei in 273 gespeichert wurden folgt der cast folgenden Regeln:

1. cast in *HEX = keine Umwandlung
2. cast in 1141 = keine Umwandlung
3. cast in 13488 = Umwandlung von 1141 in Unicode

Ggf. scheitert das noch am SQL-Server.
Da ja intern inzwischen immer mit OLEDB gearbeitet wird und der ODBC-OLEDB "MSDASQL" nicht Unicodefähig ist, kann es hier trotzdem zum Verlust des Eurozeichens kommen.

Korrekt wäre da trotzdem die Verwendung des IBMDASQL.