View Full Version : Datenbankdatei als CSV-File zum IFS
loeweadolf
19-07-06, 21:32
Ich habe eine Datenbank-Datei, die ich ins IFS kopieren möchte als CSV-Datei (comma delimited). Das heisst, Felder sollen durch Komma getrennt werden. Weiterhin sollen für numerische Werte nur soviel Stellen übertragen werden, wie vorhanden. Als Dezimal-Komma soll ein Punkt ausgegeben werden.
Diese Datei soll anschl. per FTP in die USA transferiert werden.
Ich habe einiges ausprobiert mit CPYTOIMPF, komme aber nicht weiter.
Könnte mir jemand helfen und mir den kompletten CPYTOIMPFP - Befehl mal definieren ? Danke.
mfg. Ludger
morgen
versuche mal
CPYTOIMPF FROMFILE(MyLib/MyFile) TOSTMF('/malz/daten.csv') STMFCODPAG(*PCASCII) RCDDLM(*CRLF) DECPNT(*PERIOD)
gruß
ronald
hätte ich auch vorgeschlagen mit dem evtl. kleinen unterschied als feldtrenner FLDDLM(';') zu verwenden, falls in den daten kommas vorkommen !
christian
dafür ist ja
STRDLM('"')
als default definiert, das alle Textfelder eben in " eingeschlossen sind
Ronald
danke, wieder was dazu gelernt; wir haben auch nioch nicht so oft damit gearbeitet und haben uns nur an die anweisungen gehalten, aber wohl falsch interpretiert. danke.
christian
Ich habe im Forum-400 ein Zip-File abgelegt (CVTDB2)
CVTDB2CSV erstellt ein CSV-File incl. Feldnamen in der ersten Zeile und es werden die einzelnen Felder getrimmt.
loeweadolf
20-07-06, 15:33
morgen
versuche mal
CPYTOIMPF FROMFILE(MyLib/MyFile) TOSTMF('/malz/daten.csv') STMFCODPAG(*PCASCII) RCDDLM(*CRLF) DECPNT(*PERIOD)
gruß
ronald
Vielen Dank an alle, die geantwortet haben.
Hallo Ronald, es hat soweit funktioniert, doch brauche ich noch Ergänzungen.
Ich ganz bestimmte Vorgaben. z.B. den Begrenzer für Zeichenfolgen kann ich nicht gebrauchen. Dafür kann ich aber die Daten vorher bereigen, falls ein Komma vorhanden sein sollte.
Allerdings müssen die Daten optimiert werden, dass heisst: es dürfen keine Leerzeichen ausgegeben werden, wenn das Feld nicht komplett gefüllt ist.
Ist ein Name in einem Feld mit 10 Stellen z.B.: = HUGO, dann dürfen auch nur 4 Stellen ausgegeben, begrenzt durch Komma. Dasselbe gilt für Zahlenfelder: Führende Nullen dürfen nicht als *blank ausgegeben werden, sondern gar nicht.
Gibt es dafür eine Möglichkeit ?
mfg. Ludger
Mir war draussen zu heiss....
Ich habe meinen CMD erweitert:
CVTDB2CSV FROMFILE(TESTFIL) TOOBJ('/testfil.csv') HEADER(*NONE) DECPNT(*PERIOD) STRDLM(*NONE) FLDDLM(',')
Generell werden leere Einträge unterdrückt(Leerstring, 0)
Gegen einen kleinen Beitrag für unsere leere Kaffeekasse schicke ich ein SAVF
lg
loeweadolf
21-07-06, 17:39
Mir war draussen zu heiss....
Ich habe meinen CMD erweitert:
CVTDB2CSV FROMFILE(TESTFIL) TOOBJ('/testfil.csv') HEADER(*NONE) DECPNT(*PERIOD) STRDLM(*NONE) FLDDLM(',')
Generell werden leere Einträge unterdrückt(Leerstring, 0)
Gegen einen kleinen Beitrag für unsere leere Kaffeekasse schicke ich ein SAVF
lg
Danke für das Angebot.
Ich hatte mir gestern schon mal aus dem Forum-400 deinen Beitrag heruntergeladen.
Mir ist aber lieber, wenn ich eine Quelle dabei habe, wo ich notfalls mal selber
was ergänzen kann.
u.a. brauche ich bei der erstellten Datei keine Kopfzeilen.
Ich werde wahrscheinlich mit einem RPG-Progrann den benötigten String aufbauen (wird ja auch entlohnt)
mfg. Ludgerr
Hallo,
wo kann man dieses CL's downloaden?
Vielen Dank.
mfg f.koch