none
SSIS 2008: àáâãå durch a ersetzen RRS feed

  • Frage

  • Hallo alle zusammen, 

    im SSIS gibt es in der abgleiteten Spalte die Funktion "replace". Soweit ich das gesehen habe, kann man da immer nur einen Buchstaben durch einen anderen ersetzen. Muss ich also, um "àáâãå" durch "a" zu ersetzen, immer 

    replace([Spalte1], "à", "a")

    replace([Spalte1], "á", "a")

    replace([Spalte1], "â", "a")

    ... 

    schreiben? 

    Da ich das Ganze für i ,o, u auch durchmachen muss und für jede Spalte, suche ich nach Vereinfachungen. 

    Danke für Eure Hilfe. 

    Johannes 

    Sonntag, 18. Juli 2010 19:45

Antworten

  • Hallo Johannes,

    ich würde nicht in der Derived Column machen, sondern einen Skripttask im Dataflow schreiben, der das erledigt. Dort bist Du wesentlich flexibler.

    Du übergibst dem Task die Spalte, in der Du konvertieren willst und fügst eine neue Ausgabespalte hinzu. Der Rest der Daten wird durchgeschleift.

    In der Spaltenzuordnung des Ziels verbindest Du dies eneue Spalte mit Deinem Zielfeld.

    Montag, 19. Juli 2010 06:55
  • Hallo Johannes,

    ergänzend zu Christas Antwort:

    Wenn Du das für alles mit Akzent machen willst,
    kannst Du  dafür die String.Normalize Methode nutzen.
    Damit entfallen umfangreiche Tabellen, die man sonst erstellen müsste.

    Unter How do I remove diacritics (accents) from a string in .NET?
    findest Du ein C# Beispiel, das auf einem Beispiel von Michael Kaplan,
    dem Zeichensatzexperten, basiert.

    Gruß Elmar

    Montag, 19. Juli 2010 09:01

Alle Antworten

  • Hallo Johannes,

    ich würde nicht in der Derived Column machen, sondern einen Skripttask im Dataflow schreiben, der das erledigt. Dort bist Du wesentlich flexibler.

    Du übergibst dem Task die Spalte, in der Du konvertieren willst und fügst eine neue Ausgabespalte hinzu. Der Rest der Daten wird durchgeschleift.

    In der Spaltenzuordnung des Ziels verbindest Du dies eneue Spalte mit Deinem Zielfeld.

    Montag, 19. Juli 2010 06:55
  • Hallo Johannes,

    ergänzend zu Christas Antwort:

    Wenn Du das für alles mit Akzent machen willst,
    kannst Du  dafür die String.Normalize Methode nutzen.
    Damit entfallen umfangreiche Tabellen, die man sonst erstellen müsste.

    Unter How do I remove diacritics (accents) from a string in .NET?
    findest Du ein C# Beispiel, das auf einem Beispiel von Michael Kaplan,
    dem Zeichensatzexperten, basiert.

    Gruß Elmar

    Montag, 19. Juli 2010 09:01
  • Hi Christa ,

    Danke für den Tipp und besonders für die Kurzanleitung, habe mir mal die Skript-Komponente angeschaut und die ist ja richtig klasse :-) 

    Viele Grüße

    Johannes 

    Montag, 19. Juli 2010 20:05
  • Hi Elmar,
    Danke auch für den Trick mit dem String.Normalize. Werde ich gleich einbauen. 
    Viele Grüße
    Johannes 
    P.S. Dein Wissen hätte ich gerne :-) 
    Montag, 19. Juli 2010 20:07