none
Umlaufehler schnell korrigieren RRS feed

  • Allgemeine Diskussion

  • Hallo,

    in unserer SQL-Server-Datenbank laufen Daten aus verschiedenen Systemen zusammen.

    Leider haben wir immer wieder das Problem, das Umlaute in Straßennamen und Ortsbezeichnungen verhunzt dargestellt werden.

    Um Abhilfe zu schaffen hatte ich mal eine Funktion gebaut mit der die diversen Fehler, die ich im Laufe der zeit gefunden habe größtenteils repariert werden. Als Problem stellt sich aber mittlerweile heraus, dass das ganze nicht besonders performant ist.

    USE [master]
    GO
    /****** Object:  UserDefinedFunction [dbo].[udf_replace_n]    Script Date: 07/09/2013 13:58:58 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER FUNCTION [dbo].[udf_replace_n] (@str NVARCHAR(max))
    
    RETURNS VARCHAR(max) AS
    
    BEGIN
    	SET @str = REPLACE (@str, N'ä', N'ä')
    	SET @str = REPLACE (@str, N'{', N'ä')
    	SET @str = REPLACE (@str, N'Ä', N'A')
    	SET @str = REPLACE (@str, N'ü', N'ü')
    	SET @str = REPLACE (@str, N'#', N'ü')
    	SET @str = REPLACE (@str, N'++', N'ü')
    	SET @str = REPLACE (@str, N'}', N'ü')
    	SET @str = REPLACE (@str, N'Ãœ', N'Ü')
    	SET @str = REPLACE (@str, N'ö', N'ö')
    	SET @str = REPLACE (@str, N'÷', N'ö')
    	SET @str = REPLACE (@str, N'', N'ö')
    	SET @str = REPLACE (@str, N'+Â', N'ö')
    	SET @str = REPLACE (@str, N'Ö', N'Ö')
    	SET @str = REPLACE (@str, N'|', N'ö')
    	SET @str = REPLACE (@str, N'ß', N'ß')
    	SET @str = REPLACE (@str, N'+ƒ', N'ß')
    	SET @str = REPLACE (@str, N'~', N'ß')
    	SET @str = REPLACE (@str, N'á', N'ß')
    	SET @str = REPLACE (@str, N'á', N'ß')
    	SET @str = REPLACE (@str, N'´', N'''')
    	SET @str = REPLACE (@str, N'traáe', N'traße')
    	SET @str = REPLACE (@str, N'"', N'')
    	SET @str = REPLACE (@str, N'û', N'-')
    	SET @str = REPLACE (@str, N'¯', N'ß')
    	RETURN @str
    END

    Hat jemand eine Idee, wie das besser gelöst werden kann?

    Gruß

    cheapy

    • Typ geändert Ionut DumaModerator Dienstag, 16. Juli 2013 13:42 Keine Rueckmeldung des Fragenstellender
    Dienstag, 9. Juli 2013 12:06

Alle Antworten

  • Hallo!

    Wenn Du den Import nicht besser hinbekommst, könntest Du die ganzen REPLACE-Funktionen schachteln. Das könnte unter Umständen etwas bringen.

    Diese Ersetzungen solltest Du natürlich nur auf den Import anwenden und nicht auf die gesamten Daten.


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Dienstag, 9. Juli 2013 12:37
  • *******************************************************************************************************
    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
    *******************************************************************************************************
    Dienstag, 16. Juli 2013 13:41
    Moderator