PDA

View Full Version : cpyfrmimpf



Robi
25-09-09, 15:44
Hi
folgende Datei


"OB_Einfach_1","13.08.2009","14:03:58","0432128513","","blabla, testtest, hallo"


soll importiert werden
das Prob. sind die Komma im letzten Feld

ich mache ein

CPYFRMIMPF FROMSTMF('/QNTC/XXX/yyy/datei.csv') TOFILE(KAMPA2P) MBROPT(*ADD) TOCCSID(1141) RCDDLM(*CRLF)
DTAFMT(*DLM) STRDLM('"') FLDDLM(',') DECPNT(*COMMA) DATFMT(*YYMD) FROMRCD(1) RPLNULLVAL(*FLDDFT)

und bekomme
cpf2845
Kopiervorgang aufgrund von Ursachencode 5 nicht durchgeführt.
5 - Die Begrenzer für DTAFMT(*DLM) sind nicht gültig.

Ok, im letzten Feld sind Koma aber da habe ich keinen Einfluß drauf.
Er müßte doch zus auf den feldbegrenzer reagieren oder ?

Danke
Robi

RobertMack
25-09-09, 15:48
Meines Erachtens sollte er die Kommata zwischen Anführungszeichen ignorieren - setze mal ein Komma hinter das letzte "Feld"...

Robi
25-09-09, 15:54
Danke
hab ich gemacht, hilft nicht

weitere Ideen?

Fuerchau
25-09-09, 18:25
Altes Thema: CCSID

Du kopierst direkt aus QNTC. QNTC unterstützt aber keine CCSID.
Ggf. hat dein " den falschen Code, so dass es nicht als STRDLM erkannt wird und somit die Kommas im letzten Feld berücksichtigt werden.

Kopiere die Datei erst mal per CPYFRMSTMF ins IFS. Dann kannst du dir mal den Hex-Wert des " ansehen und ggf. die korrekte CCSID auswählen (850, 1252).

Robi
28-09-09, 10:40
Hi,
so wenn ich die Datei über wrklnk ansehe so hat sie als
" den Hex 22 und als , den hex 2c

Die angezeigte CCSID ist 1252

Du schreibst, das QNTC keine CCSID unterstützt, ich seh aber eine.
und das ist anscheinend eine 'gute' da du ja 1252 als korrekt vorschlägst.
Ich habe nun mal beim fromccsid die 1252 vorgegeben, hilft aber nicht.

nun habe ich die Datei mit '3' nach /home/Robi kopiert (IFS)
und die 1252 als Ziel CCSID eingegeben.

Bekomme aber die selbe Fehlermeldung.
Jetzt habe ich noch die komma im hinteren Feld entfernt um sicher zu gehen, das die die ursache sind.
Es geht aber trotzdem nicht?
cpf2845, Ursache 5
sch...
noch ne Idee ?

Robi

alfredo
28-09-09, 12:07
Ich glaube das Problem liegt darin, dass Feldbegrenzer und Dezimalpunkt beide Komma sind.

Robi
28-09-09, 12:17
Hi, das kann sein,

habe mittlerweile einiges versucht.
wenn ich die Komma durch Semikolon ersetze, geht alle problemlos. Auch die Semikolons im hinteren Feld stören dann nicht.
Suche grade nach der korrekten syntax von SED...

Jup

habe dezimal in *period geändert, und ... ES GEHT !!!!
Danke danke Danke

Robi