Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Memotext zeilenweise lesen, vergleichen, ändern

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von norwegen60, 11 März 2013.

  1. norwegen60

    norwegen60 Benutzer

    Hallo zusammen,

    gibt es eine einfache Möglichkeit den Text eines mehrzeiligen Strings per SQL-Befehl zeilenweise zu lesen und zu vergleichen. So was wie
    Code:
    Update Table1
    Set memo1.line[1] = 'Text'
    where not memo1.line[1] = 'Text'
    d.h. es soll nur der Text in Zeile 2 ersetzt werden, Zeile 1 und die folgenden Zeilen bleiben unberührt. Sollte zumindest für MsSQL 2008R2 funktionieren.

    Bin für jede Hilfe dakbar
    Gerd
     
  2. akretschmer

    akretschmer Datenbank-Guru

    In trivial wohl nicht.

    Dein Problem klingt für mich stark nach falschen Design: Du speicherst mehrere Informationen in einem Feld, hier Textfeld, ab. Um die einzelnen Informationen zu trennen nutzt Du ein beliebiges Zeichen, hier den Zeilentrenner. Normalisiere Deine Tabelle und Dein Problem ist gelöst.

    Also unvollständiger Ansatz:

    Code:
    test=*# select * from memotext ;
            t
    -----------------
     Text           +
     Zeile2         +
     Zeile3         +
     noch eine Zeile
    (1 row)
    
    test=*# select split_part(t,E'\n',2) from memotext ;
     split_part
    ------------
     Zeile2
    (1 row)
    
    Das ist aber noch meilenweit von einer Lösung für die Aufgabe 'ersetze den Text in Zeile 2' entfernt - und ich habe da auch wenig Motivation, da eine Lösung zu suchen.


    Andreas
     
  3. ukulele

    ukulele Datenbank-Guru

    Also das Datenformat der betreffenden Spalte ist einfach nur TEXT und \n (Zeilenumbruch) ist dein Trennzeichen? Mit VARCHAR würde es sicherlich gehen, wenn auch aufwendig. Mit TEXT eventuell aber das unterliegt mehr Einschränkungen.
    http://msdn.microsoft.com/de-de/library/ms187993.aspx
    Mit diesen Funktionen musst du den String zerlegen und den entsprechenden Teil ersetzen. Allerdings bietet sich hier tatsächlich eine Änderung des Datenmodells an.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden