Patrick.Karre Geschrieben 3. Februar 2008 Teilen Geschrieben 3. Februar 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 4. Februar 2008 Teilen Geschrieben 4. Februar 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 4. Februar 2008 Teilen Geschrieben 4. Februar 2008 Huch, ein char(13) + char(10) brauchst natuerlich Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. Februar 2008 Autor Teilen Geschrieben 4. Februar 2008 Hallo Goos, die REPLACE Funktion hat mit dem NTEXT Feld ein Problem, hast Du noch eine Idee? Beste Grüße Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 4. Februar 2008 Teilen Geschrieben 4. Februar 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. Februar 2008 Autor Teilen Geschrieben 4. Februar 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 4. Februar 2008 Teilen Geschrieben 4. Februar 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. Februar 2008 Autor Teilen Geschrieben 4. Februar 2008 Hallo Goos, sauber gut, es hat funktioniert. Danke. Beste Grüße Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
koniu12 Geschrieben 9. Dezember 2008 Teilen Geschrieben 9. Dezember 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 9. Dezember 2008 Teilen Geschrieben 9. Dezember 2008 ä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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Byteloser Geschrieben 10. Dezember 2008 Teilen Geschrieben 10. Dezember 2008 Den Datentyp (N)VARCHAR(MAX) gibt es in SQL-Server 2000 nicht. Den gibt es erst seit 2005. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
koniu12 Geschrieben 16. Dezember 2008 Teilen Geschrieben 16. Dezember 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 22. Dezember 2008 Teilen Geschrieben 22. Dezember 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.