PDA

View Full Version : zum x-ten Male - CCSID und JDBC



Externer
25-07-07, 17:43
Hallo Forum!

Ich weiss, das Thema ist schon zur Genüge besprochen worden, nur leider habe ich die passende Antwort hier nicht gefunden.

Was habe ich gelernt? Bei CCSID 65353 wird nichts umgesetzt. Wir haben auf der Kiste diese CCSID, also auf 273 geändert (alle Files haben die CCSID 273). Nun habe ich versucht die Daten (schweizer Käsedaten) via JDBC in eine MSSQL-Datenbank zu migrieren. Tja... leider werden die ä's und ö's und ü's wie {} usw. behandelt.
Achja, die angemeldeten (neuen) Jobs auf der Kiste haben dann natürlich auch 273. Ein klasse Tool ist der DBVisualizer, aber auch der zeigt die Daten mit Sonderzeichen an.
Was muss ich noch lernen??

Gruss Stefan

Fuerchau
25-07-07, 18:52
Die Frage ist, mit welcher Hostcodepage (CA-Sitzung) sind die Daten denn ursprünglich in die AS/400-DB hineingekommen ?
Das Ändern der Job's/QCCSID usw. bringt nichts, wenn man über die Herkunft der Daten nichts weiß.
Sicherlich wird mit 65535 nichts übersetzt, aber eins ist sicher:
Der PC arbeitet z.B. in ANSI (CP 1251) und daher müssen die Zeichen in EBCDIC übersetzt werden bevor sie zur AS/400 gelangen.
Wenn nun das System zu diesem Zeitpunkt auf 65535 stand, wird im Zweifel ggf. mit CCSID 037 (USA-Englisch) umgewandelt.
Also sind deine Daten ggf. nicht im Code 273 sondern im Code 037, da ja zwischen Device (CA-Sitzung) und Job grundsätzlich (erstmal) nicht gewandelt wird und nur zwischen Job und DB ggf. eine Wandlung erfolgt.

Hier hast du nun ggf. ein Problem, die Daten korrekt umzusetzen.

Versuche folgendes:
Kopiere eine Datei erst mal in eine Testdatei und ändere deren CCSID auf 037. Anschließend kopiere die Daten in eine andere Kopie mit CCSID 273.
Vergleiche die Daten mit z.B. SQL/QUERY an einer CA-Sitzung.

Im Nachhinein die Daten auf eine korrekte CCSID zu bringen ist leider nicht ganz so einfach.

Externer
25-07-07, 19:31
Danke für deine schnelle Antwort. Ich habe da heute ein bisschen rumgespielt. Vielleicht ist mein Ansatz auch falsch. Evtl. gibt es irgendwo im Netz eine Java-Klasse, die mich von meinem Problem befreit. Da es sich nur um wenige Felder (meist Bezeichnungen) handelt, könnte ich diese auch mit ein bisschen Programmcode umsetzen. Ist mir jedenfalls fast lieber als auf der Kiste Dateien rumzukopieren. Kennst du eine gute Quelle?
Gruss
Stefan