[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    850

    SQL mit Replace

    Hallo zusammen,


    ich habe ein kleines Problemchen mit dem
    ersetzen von Zeichen in einem String.

    In dem String sollen variable Werte für
    &P1, &P2, &P11 eingesetzt werden

    PHP-Code:
    Eingabeparameter 

    AString 
    =   das ist &P1ein &P2 test mit &P11ersetzten
    aSearchParm 
    = &P1
    aSearchParmVal
    =Meyer

    C
    /EXEC SQL                                                
    C
    +  set  :aString REPLACE(:AString, :aSearchParm
    c+                                       :aSearchParmVal
    C/END-EXEC 

    Ergebnis
    das ist Meyerein 
    &P2 test mit Meyer1ersetzten


    Der Replace findet also 
    die Zeichenfolge &P1 an den stellen
    10
    -12 und zusätzlich bei 30-32 was ja eigentlich richtig ist.

    Allerdings soll der Wert für &P11 nicht ersetzt werden

    Hat jemand eine Idee wie man das lösen könnte ?

    Gruß
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Frage verstehe ich jetzt so nicht ganz.
    Was soll nicht ersetzt werden ?

    Ein Problem des Replace gibts auf jeden Fall.
    Die Felder aSearchxxx sollten als VARYING definiert sein, da sonst Leerzeichen für das Suchen und ersetzen mit gelten!
    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

  3. #3
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hi Baldur,


    die Felder sind als vaying definiert.

    In meinem Fall ist es so:

    der String aString hat drei Ersetzungsvariablen
    das ist &P1ein &P2 test mit &P11ersetzten

    &P1 , &P2 und &P11

    leider ersetzt der replace wenn nach &P1 gesucht wird
    auch die Variable &P11.

    Ich suche einen Weg das zu verhindern.

    Gruß
    Michael

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das kann der Replace so nicht, da der String &P1 in &P11 enthalten ist.
    Du musst sicherstellen, dass der String eindeutig ist.
    Ggf. reicht ja bereits ein Blank aus:

    replace(myfield, '&P1 ', 'Wert')
    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

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    ich würde einfach in umgekehrter Reihenfolge vorgehen, d.h. zuerst &P11 ersetzen und dann &P1.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hallo zusammen,

    danke für die Info's.

    Ich werde das Programm so umbauen das die Parameter
    absteigend verarbeitet werden.

    Gruß
    Michael

Similar Threads

  1. SQL Replace
    By Bobou in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 12-08-08, 13:26
  2. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  3. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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