View Full Version : Zeichen ersetzen
programmer400
03-11-15, 10:25
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.
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
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.
programmer400
04-11-15, 07:46
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.