[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2003
    Beiträge
    331

    Cool 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

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121
    morgen

    versuche mal
    PHP-Code:
    CPYTOIMPF FROMFILE(MyLib/MyFileTOSTMF('/malz/daten.csv'STMFCODPAG(*PCASCIIRCDDLM(*CRLFDECPNT(*PERIOD
    gruß
    ronald

  3. #3
    Registriert seit
    Apr 2006
    Beiträge
    49
    hätte ich auch vorgeschlagen mit dem evtl. kleinen unterschied als feldtrenner FLDDLM(';') zu verwenden, falls in den daten kommas vorkommen !

    christian

  4. #4
    Registriert seit
    May 2002
    Beiträge
    1.121
    dafür ist ja

    STRDLM('"')

    als default definiert, das alle Textfelder eben in " eingeschlossen sind

    Ronald

  5. #5
    Registriert seit
    Apr 2006
    Beiträge
    49
    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

  6. #6
    Registriert seit
    Mar 2003
    Beiträge
    80
    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.

  7. #7
    Registriert seit
    Jul 2003
    Beiträge
    331

    Cool

    Zitat Zitat von malzusrex
    morgen

    versuche mal
    PHP-Code:
    CPYTOIMPF FROMFILE(MyLib/MyFileTOSTMF('/malz/daten.csv'STMFCODPAG(*PCASCIIRCDDLM(*CRLFDECPNT(*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

  8. #8
    Registriert seit
    Mar 2003
    Beiträge
    80
    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

  9. #9
    Registriert seit
    Jul 2003
    Beiträge
    331

    Wink

    Zitat 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

  10. #10
    Registriert seit
    May 2003
    Beiträge
    5

    SAVF CVTDB2

    Hallo,
    wo kann man dieses CL's downloaden?

    Vielen Dank.
    mfg f.koch

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    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
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  12. #12
    Registriert seit
    Mar 2003
    Beiträge
    80
    Ich komme da gar nicht mehr rein, die Blocker haben mal wieder kräftig zugeschlagen....

    Forum-400 : Diskussions- und InfoPool IBM iSeries

Similar Threads

  1. probleme file ins IFS stellen
    By steven_r in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 30-01-07, 07:48
  2. fehlende DDS Sourcen: disassembler?
    By emax in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 06-10-06, 11:01
  3. Savf File per FTP
    By wuwu in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 18-08-06, 08:09
  4. encoding file system system von CSV files
    By cc in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 13-10-04, 22:52
  5. Datenbankdatei in CSV
    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
  •