[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2004
    Beiträge
    86

    SQL UPDATE REPLACE begrenzt auf bestimmte Feldlänge!

    Servus,

    ich habe ein Feld das 30 Stellen lang ist. In diesem Feld muss der Name geändert werden.

    Bsp.

    UPDATE artikelstamm
    SET bez1 = REPLACE (bez1, 'Artikel', 'ARTIKEL®')
    where bez1 like 'Artikel-%';

    Das ist ja alles kein Problem wenn das Feld mit max. 29 Zeichen belegt ist. Aber wenn es schon 30 Zeichen hat, dann kommt er auf Fehler. Ist ja auch klar.
    Das Feld kann ich nicht vergrößern. Gibt es eine Möglichkeit die Abfrage mit einer Längenabfrage zu kombinieren? Sodas er nur die Inhalte mit max. 29 Zeichen Länge ändert.




  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wie wäre es mit "...length(rtrim(myfield))..."?
    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
    May 2002
    Beiträge
    1.121
    Versuche es doch mal mit
    PHP-Code:
    update artikelstamm                                                
    set bez1 
    SubStrReplacebez1'Artikel''ARTIKEL®'), 130
    where bez1 like 'Artikel-%' 
    Alledings wird hier das letzte Zeichen "getötet"

    Gruß
    Ronald

  4. #4
    Registriert seit
    Jun 2004
    Beiträge
    86
    Das Feld ist ja schon ab Stelle 1 gefüllt. Das Problem ist halt nur wenn es mit genau 30 Stellen gefüllt ist, dann kann ich das Zeichen nicht mehr hinzufügen, weil das Feld zu klein ist. Ich wollte genau die nur ändern die kleiner 30 sind.

  5. #5
    Registriert seit
    May 2002
    Beiträge
    1.121
    Es bleibt ja auch ab Stelle 1 gefüllt.
    Wenn die Bezeichnung schon 30 Zeichen lang ist, dann macht er durch das REPLACE 31 Zeichen daraus.
    Das SUBSTR macht dann wieder 30. Allerdings geht das ganz rechte Zeichen auf diese Weise verloren.
    Ist die Bezeichnung vorher kleiner 30, dann ändert er den Text und gut ist.
    Wenn du nur die ändern willst, wo noch ein Zeichen frei ist, dann muss du die Länge das Feldes mit in die where-Bedingung packen.

    PHP-Code:
    update artikelstamm                                                
    set bez1 
    Replacebez1'Artikel''ARTIKEL®'
    where bez1 like 'Artikel-%'  
      
    and length(rtrim(bez1)) < 30 

  6. #6
    Registriert seit
    Jun 2004
    Beiträge
    86
    Ah, jetzt ist der Groschen gefallen.
    Werde das ganze ausprobieren und dann hier berichten. Vielen Dank erstmal an euch beiden.

  7. #7
    Registriert seit
    Jun 2004
    Beiträge
    86
    Danke, klappt prima.

Similar Threads

  1. SQL Update
    By co_steffl in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 25-06-14, 15:17
  2. SQL update
    By Joe in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 15-04-03, 16:06
  3. SQL update
    By Joe in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 01-04-03, 20:50
  4. Benutzer begrenzt zulassen mit ALWLMTUSR
    By roman in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 06-03-02, 07:45
  5. Update mit SQL
    By schreibr in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-09-01, 09:22

Tags for this Thread

Berechtigungen

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