-
Datenbankdatei als CSV-File zum IFS
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
PHP-Code:
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.
-
Zitat von malzusrex
morgen
versuche mal
PHP-Code:
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
-
Zitat von alfredo
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
-
SAVF CVTDB2
Hallo,
wo kann man dieses CL's downloaden?
Vielen Dank.
mfg f.koch
-
Auch hier gilt wieder mal: alles schon mal da gewesen:
Wieso schreibt ihr eigentlich laufend Programme, wenn diese gar nicht benötigt werden (ausser einem kleinen CLP für regelmäßige Arbeit) ?
Z.B. CSV mit QM-Query:
select trim(fld1) concat ';' concat trim(fld2) concat ';' ...
concat trim(char(numfld)) concat ';' ...
from ...
where ...
Ich kann in dem Select mit CommonTableExpression, Join, Union, Group, Having usw. die Daten so lange am Bildschirm anzeigen, bis das gewünschte Ergebnis vorliegt.
Per STRQMQRY dann in Outfile und per CPYTOIMPF/CPYTOSTMF ausgeben.
An Stelle des ';' kann ich auch beliebige X'xx' verwenden.
Das Schöne daran ist, ich mache mir keine Gedanken über die maximale Satzlänge. Das macht SQL ganz automatisch.
Ausserdem habe ich mittlerweile festgestellt, dass dies die schnellste Variante überhaupt ist:
a) SQL gibt die Daten sehr schnell aus
b) CPYTOSTMF braucht sich um Formate nicht mehr zu kümmern und kopiert eben auch sehr schnell
Benötigt man in der IFS-Datei noch die Header, kann man diese mittels CPYTOSTMF vorher ausgeben und die SQL-Daten anhängen.
Und mit Umlauten hatte ich noch nie Probleme
-
Ich komme da gar nicht mehr rein, die Blocker haben mal wieder kräftig zugeschlagen....
Forum-400 : Diskussions- und InfoPool IBM iSeries
Similar Threads
-
By steven_r in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 30-01-07, 07:48
-
By emax in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-10-06, 11:01
-
By wuwu in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 18-08-06, 08:09
-
By cc in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 13-10-04, 22:52
-
By programmer in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 03-04-04, 18:15
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks