Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Forum,

ich muss ein MS-SQL-Statement schreiben, welches bestimmte Zeichen in einem Textfeld durch andere Zeichen (einen CRLF) ersetzt. Wie erstelle ich am besten dieses Update-Statement?

Folgende Zeichenkette kann beliebig oft vorkommen und muss ersetzt werden: @@#@@. Dieses Zeichen soll durch einen Zeilenumbruch in einem NTEXT ersetzt werden.

Beste Grüße aus Erlensee

Patrick

Moin,

wo auch immer dieses Erlensee liegen mag :D

Versuchs mal mit:

UPDATE mytable SET mySpalte = REPLCAE(mySpalte, '@@#@@', char(10) + char(13))

Ich hoff dabei einfach mal fuer dich, dass du es auf keine riesigen Datenmengen anwenden musst :)

Goos

Sorry, hatte ich ueberlesen.

In dem Fall hast noch zu wenig Infos gegeben.

Benutzt du zufaellig MSSQL 2005? (Dann waers gar kein Problem :D )

....oder beinhalten deine NTEXT Felder vielleicht nicht mehr als 4000 Zeichen?

Goos

Ich wuerds mal so versuchen:

UPDATE myTable SET mySpalte = REPLACE(CAST(mySpalte AS varchar(max)), '@@#@@', char(13) + char(10))

Performant ists aber natuerlich nicht sonderlich ;)

Goos

  • 10 Monate später...

Hallo,

ich habe ähnliches Problem mit der REPLACE Funktion im Texfeld.

Möchte folgendes ausführen :

UPDATE ARTIKEL SET ZUSTEXT1 = REPLACE(ZUSTEXT1,'Wort1','Wort2')

Leider spuckt der MS-SQL Server: Der Argumentendatentyp text ist für das Argument 1 der replace-Funktion ungültig.

Wie kann ich das Problem umgehen ? Vielen Dank im voraus.

Mit freundlichem Gruß

Adam

ähm, steht doch eh in der lösung? :rolleyes:

du musst TEXT und NTEXT in ein (N)VARCHAR(MAX) rüber CASTen.

das ist bei 2005 so und wars auch schon bei 2000.

s'Amstel

Den Datentyp (N)VARCHAR(MAX) gibt es in SQL-Server 2000 nicht. Den gibt es erst seit 2005.

Vielen Dank, es hat mit UPDATE ARTIKEL SET ZUSTEXT1 = REPLACE(CAST(ZUSTEXT1 AS varchar(8000)), 'xxx','yyy') geklappt.

Möchte nun das Feld um bestimmten Text erweitern, habe mit :

UPDATE ARTIKEL SET ZUSTEXT1 = ZUSTEXT1 + 'Zusatztext'

probiert, leider klappt es nicht. Wäre für die Hilfe sehr dankbar, da ich leider kein Experte bin.

MFG

Adam

probiert, leider klappt es nicht. Wäre für die Hilfe sehr dankbar, da ich leider kein Experte bin.

MSSQL liefert fehlermeldungen - auch in der 2000er version.

im übrigen hast du doch vorher bereits CAST verwendest; warum tust du das nicht hier wieder?

UPDATE ARTIKEL SET ZUSTEXT1 = CAST(ZUSTEXT1 AS varchar(8000)) + 'Zusatztext'

... funktioniert auch bei TEXT und NTEXT.

s'Amstel

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.