[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2007
    Beiträge
    243

    Zeichen ersetzen

    Folgendes Problem:
    Schnittstelle Fibu wurde falsch beschickt. Die Mengen und Betragsfelder werden dort im Klartext mit + bzw. - als Vorzeichen übergeben.

    Die Felder stecken aber alle in einer Wurscht in einem langen Alphafeld.

    Wie geh ich das am besten an, um die Vorzeichen zu drehen ohne ein Programm dafür schreiben zu müssen.

    Geht das mit SQL?

    Besten Dank im Voraus für die Infos.

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121
    Mit strsql

    Update MyFile set Feld = Replace(Feld, '+', '#')
    Update MyFile set Feld = Replace(Feld, '-', '+')
    Update MyFile set Feld = Replace(Feld, '#', '-')

    Danach sollte alles gedreht sein.

    Gruß
    Ronald

    Nachtrag: das '#' sollte natürlich nicht im Feld selber vorkommen. Wenn +/- auch noch in Text stehen sollte, dann musst du zusätzlich mit SubStr arbeiten

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das ist zugegeben ein Problem.
    Man kann zwar obige Methode wählen, allerdings werden da alle Vorkommen ersetzt, also auch die, die nichts mit deinen Zahlen zu tun haben.

    Ohne Programm geht das korrekt eigentlich nur per
    CPYFRMIMPF (falls die Daten als CSV o.ä. vorliegen)
    Update per SQL
    CPYTOIMPF

    Wenn du ein festes Format hast und der Betrag bzw. das Vorzeichen immer an der selben Stelle steht, dann geht obiger SQL eigentlich so:

    set Feld = substr(Feld, 1, PosVorSign) concat
    case substr(Feld, 1, PosSign, 1) when '+' then '-' else '+' end
    concat substr(Feld, PosNachSign)

    Dies ist je Vorzeichen im String dann zu wiederholen.
    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. #4
    Registriert seit
    Aug 2007
    Beiträge
    243
    Herzlichen Dank für die Hilfe.

    In diesem Fall hat mir der erste Tipp genügt, der zweite wird sicher in Zukunft einmal benötigt werden.

Similar Threads

  1. Jahr in Datum ersetzen (SUBDT)
    By camouflage in forum NEWSboard Programmierung
    Antworten: 15
    Letzter Beitrag: 16-09-15, 12:28
  2. TM und Registred Zeichen
    By camouflage in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-04-15, 15:01
  3. OPNQRYF im RPG-Programm durch SQL ersetzen
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 18-05-14, 16:26
  4. Duplikate mit Sql ersetzen
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 09-11-13, 14:08
  5. Suchen/Ersetzen?
    By Matthias.Hayn in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 15-07-02, 07:03

Berechtigungen

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