PDA

View Full Version : Sonderzeichen



Harald.Kurzboeck
23-06-13, 18:31
Hallo,

wir bekommen eine CSV von unseren türkischen Kollegen.
Da sind ja eine Menge Sonderzeichen.
Die Sonderzeichen ersetzte ich manuell.

Mit Upddta und Sql versuche ich meistens noch einige Sonderzeichen zu eliminieren die ich übersehen habe.

Durch die Sonderzeichen bekomme ich die Fehlermeldung:Permanenter E/A-Fehler in Datei

Kann man das irgendwie das eliminieren der Sonderzeichen automatisieren?
Wie würden das die Profis vorgehen bzw. lösen ?

lg

Harald

Fuerchau
23-06-13, 18:44
Wenn es türkische Daten sind, dann haben sie entweder Codepage 857 (DOS, Unix) oder 1254 (Windows).
Ich würde diese per CPYTOIMPF erst mal in eine Unicode-Datei (var/graphic(nn) ccsid 13488) importieren.
Von dort lassen sich die Daten dann automatisch mit SQL in eine andere CCSID konvertieren. Dabei werden automatisch Ersatzzeichen gewählt.

Harald.Kurzboeck
23-06-13, 19:32
Leider bin ich in CL-nicht so Sattelfest.
Wie kopiere ich bzw. erstelle ich eine Unicode Datei?

Danke für die rasche Antwort.

Leider bin ich in CL-nicht so Sattelfest.
Wie kopiere ich bzw. erstelle ich eine Unicode Datei?

Kann ich bei dem Befehl CPYFRMIMPF nicht die Ausgangs-CCSID und Ziel-CCSID nicht gleich angeben?

In unserem Cl-Programm wird wie folgt kopiert:
CPYFRMIMPF FROMSTMF(STMFIL)
TOFILE(QTEMP/WRKFIL)
MBROPT(*ADD)
FROMCCSID(*FILE)
RCDDLM(*ALL)
STRDLM(*NONE)
RMVBLANK(*NONE)
FLDDLM(';')
DECPNT(*COMMA)
RPLNULLVAL(*FLDDFT)

Und wie konvertieren Sie von einer CSSID in eine ander per Sql?

Danke

Fuerchau
24-06-13, 07:13
Du kannst es ja versuchen. Je nach Release wird die Konvertierung inkompatibler CCSID's aber abgelehnt.

Per SQL eine Tabelle erstellen:
create table mylib/mytable
(f1 graphic(nn) ccsid 13488
,f2 ...
,f3 decimal(n, m)
)

Per SQL kopieren:
insert into ziel
select * from Quelle

CCSID-Konvertierungen werden von SQL dann automatisch durchgeführt.