PDA

View Full Version : Datenmigration CCSID gemischt



spiceisnice
25-10-12, 09:10
Hallo,

wir migrieren gerade unser ERP System auf das nächste Release, JAVA mit UNICODE, weiterhin System i.

ALT PF CCSID 273, NEU PF CCSID 13488

Beispiel:
gemeinsamer Kundenstamm(PF) am zentralen System i für alle Niederlassungen international, diese arbeiten jeweils mit der jeweiligen JOB CCSID pro Land, also 273 oder 870(CZ,SK,PL,HU,SI,HR) oder Russland oder Türkei usw. in die Datei, die hat eben CCSID 273.

Nun muss zb. diese Kundenstammdatei (Sätze mit 273 und Sätze mit 870 erstellt) in die neue mit CCSID 13488 migriert werden. Der Migrationsjob lauft mit 273, Ergebnis 273 Umlaute OK, 870 etc. Sonderzeichen natürlich nicht korrekt.

Die Migrationsprogramme des Softwarepartners können mit dieser Situation nicht umgehen (primär nur ein simples CPYF mit *MAP/*DROP).

Irgendwelche Ideen? Vielen DANK!

KM
25-10-12, 11:57
Hallo,

wenn in der alten Datei Sätze mit 273 und 870, etc. vorhanden sind, kann die Datei ja schlecht 273 haben, sonst würden ja bestimmte Sonderzeichen verschüttet gehen. Dann hat sie wohl eher 65535.
Am einfachsten importierst Du die Daten in die neue Datei (13488) mit SQL und den entsprechenden Casts.

Gruß,
KM

Fuerchau
25-10-12, 19:16
Nunja, die CCSID der Datei ist unerheblich, wenn beim Befüllen der Datei der Job auf 65535 oder mit der CCSID identisch war, dann erfolgt eben keine Codewandlung.

Hier benötigst du schon eine genaue Information welche CCSID de Satz haben könnte:

cast(
case
when Info = 'DE'
then cast(cast(Feld as char(nn) ccsid 65535) as char(nn) ccsid 273)

when Info = 'PL'
then cast(cast(Feld as char(nn) ccsid 65535) as char(nn) ccsid 870)

else Feld
end
as graphic(nn) ccsid 13488)

Die Aktion ist natürlich je Feld erforderlich.