Veröffentlicht 3. Februar 200817 j 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
4. Februar 200817 j Moin, wo auch immer dieses Erlensee liegen mag 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
4. Februar 200817 j Autor Hallo Goos, die REPLACE Funktion hat mit dem NTEXT Feld ein Problem, hast Du noch eine Idee? Beste Grüße Patrick
4. Februar 200817 j Sorry, hatte ich ueberlesen. In dem Fall hast noch zu wenig Infos gegeben. Benutzt du zufaellig MSSQL 2005? (Dann waers gar kein Problem ) ....oder beinhalten deine NTEXT Felder vielleicht nicht mehr als 4000 Zeichen? Goos
4. Februar 200817 j Autor Hallo Goos, ich verwende MS-SQL 2005 und der Text kann beliebig lang sein. Wie mach ich das am besten unter MS-SQL 2005? Beste Grüße Patrick
4. Februar 200817 j 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
9. Dezember 200816 j 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
9. Dezember 200816 j ähm, steht doch eh in der lösung? 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
10. Dezember 200816 j Den Datentyp (N)VARCHAR(MAX) gibt es in SQL-Server 2000 nicht. Den gibt es erst seit 2005.
16. Dezember 200816 j 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
22. Dezember 200816 j 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.