[NEWSboard IBMi Forum]
Seite 3 von 5 Erste ... 2 3 4 ... Letzte
  1. #25
    Registriert seit
    Jan 2021
    Beiträge
    26
    Hallo Mitglieder , habe eine Nachfrage dazu und aus Vereinfachungsgründen , nicht ein neues Thema erstellt . Die Frage/Problem welches ich habe und sich jetzt zeigte ist , dass beim laden der XML , die Umlaute nicht korrekt umgesetzt werden . Ich weiß , dies hat was mit der CCSID zu tun , was ich nicht weiß ist , wie ich dies einstellen kann in dem SQLRPG , dass die Umlaute ( üäö usw. ) ebenfalls korrekt empfangen und in die CLOB_File eingestellt werden . Danke für erue Hilfe .. PS: alles andere klappt mit eurer Hilfe hervorragend ..

  2. #26
    Registriert seit
    Jan 2021
    Beiträge
    26
    Im zu ladenden XML-File steht im Header :

    < ?xml version = "1.0" encoding="UTF-8"?>

    zur Info ...

  3. #27
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Die CCSID wird aus der Datei entnommen. Wenn sie aus Windows kommt hat sie u.U. 819 bestenfalls 1252 erhalten.
    Für UTF8 musst du zuvor einen CHGATR mit *CCSID = 1208 anwenden.
    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

  4. #28
    Registriert seit
    Jan 2021
    Beiträge
    26
    okay, also vor dem laden , vor dem insert , wenn ich den Pfad und den Namen der file vom share erhalte , chgatr auf das objekt auf dem server um dann den insert im RPG durchzuführen , so richtig ?

  5. #29
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wenn du als Server deine IBM i meinst und der Share ein IFS-Pfad ist, dann stimmt das so.
    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

  6. #30
    Registriert seit
    Jan 2021
    Beiträge
    26
    nein, die XML liegt auf einem Windows Server ...
    heißt also , ich kann dies dann so nicht machen .. wenn nicht .. wie kann ich die Daten dann korrekt in die CLOB laden ?

  7. #31
    Registriert seit
    Jan 2021
    Beiträge
    26
    kann ich den insert parametrisieren mit CCS-angaben , oder sollte die Ziel-CLOB-File entsprecht definiert werden ? hier besteht die Herausforderung , dass ich direkt vom windowsserver lade ( Freigabe ist definiert ) , ohne Umwege , was ja auch problemlos funktioniert ...

  8. #32
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Da hast du aber keine CCSID-Unterstützung, da Windows das nicht beherrscht.
    Für eine CCSID-Konvertierung musst du die Datei vorher lokal ins IFS kopieren, ansonsten wird wieder der Default des Netservers (819/1252) verwendet.
    Das geht z.B. mit CPY.
    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

  9. #33
    Registriert seit
    Jan 2021
    Beiträge
    26
    okay , danke . wir werden die files ins IFS stellen und dann mit CHGATR die CCSID ändern und die Daten laden ..

  10. #34
    Registriert seit
    Feb 2021
    Beiträge
    10
    Hallo Brigitta,

    dein Beispiel oben läuft bei mir rudimentär.
    Ich möchte eine IFS-CSV-Datei lesen, und zwar Satzweise,
    bis EOF.
    Was muss ich noch beachten ?
    Danke im voraus.

  11. #35
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Nur mal so als Frage: Warum erstellst du nicht eine passende Tabelle und nutzt CPYFRMIMPF?
    Satzweises lesen geht u.U. nur mit der neuen SQL-Functions IFS_READ.
    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. #36
    Registriert seit
    Nov 2020
    Beiträge
    315
    Hallo,

    Mit SQL Gibt es auch viele Möglichkeiten.

    Hier hab ich ein Beispiel, wie du mit SQL das CSV nicht nur Zeile für Zeile einlesen kannst, sondern auch schon auf die entsprechenden Spalten aufgesplittet bekommst:

    Code:
    With csv2rows as (Select Element as Satz
                 from Table(SYSTOOLS.SPLIT(
                                       GET_CLOB_FROM_FILE('/home/prouza/test.csv'), x'0D25')
                                )
    ),
    rows2col as (select regexp_replace(satz, '(.+),(.+),(.+),(.+),(.+),(.+)', '$1') Spalte1,
                 regexp_replace(satz, '(.+),(.+),(.+),(.+),(.+),(.+)', '$2') Spalte2,
                 regexp_replace(satz, '(.+),(.+),(.+),(.+),(.+),(.+)', '$3') Spalte3,
                 regexp_replace(satz, '(.+),(.+),(.+),(.+),(.+),(.+)', '$4') Spalte4,
                 regexp_replace(satz, '(.+),(.+),(.+),(.+),(.+),(.+)', '$5') Spalte5,
                 regexp_replace(satz, '(.+),(.+),(.+),(.+),(.+),(.+)', '$6') Spalte6
                 from csv2rows
    )
    select * from rows2col;
    Das (.+) steht für ein Feld im CSV. Diese Felder sind mit dem "," getrennt.
    Es gibt auch noch andere Möglichkeiten wie man diese auf Spalten aufsplitten kann.

    Die Frage der Performance wäre dann halt auch noch nebenbei.
    Ich denke von diesem Aspekt ist der CPYFRMIMPF womöglich am schnellsten.

    lg Andreas

Similar Threads

  1. Mit dem Bagger durch die Eifel oder wie debugge ich eine SQL Prozedur
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 04-11-19, 08:59
  2. mehrere Spoolfiles in eine Datei
    By programmer400 in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 26-07-17, 11:58
  3. Antworten: 10
    Letzter Beitrag: 14-12-16, 16:45
  4. verschiedene Jobs gleiche Datei, schreib / lese konflikt?
    By dibe in forum NEWSboard Programmierung
    Antworten: 20
    Letzter Beitrag: 25-02-16, 16:33
  5. Antworten: 3
    Letzter Beitrag: 20-12-13, 10:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •