none
SSIS Werte ersetzen RRS feed

  • Frage

  • Hallo,

    ich möchte in einen SSIS Projekt Daten aus einer Tabelle laden und den Inhalt einer Spalte durch andere Werte ersetzen.

    Z.B. wenn diese Spalte den Wert 1 hat soll sich durch den Wert ABC1 ersetzt werden.

    Wenn diese Spalte den Wert 2 hat soll sich durch den Wert ABC2 ersetzt werden usw.

    Wenn diese Splate aber den Wert 0 hat soll dieser Wert auch in der neuen Spalte sein.

    Wie kann ich so etwas machen?

    Mittwoch, 13. Juni 2012 05:47

Antworten

  • Hallo,

    Du kannst in einem Update Statement eine Fallunterscheidung nutzen, Beispiel:

    DECLARE @meineTab TABLE (Spalte varchar(100));
    INSERT INTO @meineTab VALUES ('0')
    INSERT INTO @meineTab VALUES ('1')
    INSERT INTO @meineTab VALUES ('2')
    INSERT INTO @meineTab VALUES ('3')
    
    UPDATE @meineTab
    SET Spalte = CASE WHEN Spalte = '0' THEN '0'
                      WHEN Spalte = '1' THEN 'ABC1'
                      WHEN Spalte = '2' THEN 'ABC2'
                      ELSE Spalte END
    
    SELECT *
    FROM @meineTab  

    Oder sollen die Werte irgendwie dynamisch ermittelt; dann müsstest Du bitte etwas genauer beschreiben, was Du vor hast.

    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    Mittwoch, 13. Juni 2012 05:56
  • Das kannst Du als einfaches Task "SQL Ausführen" in der Ablaufsteuerung ausführen.

    Wenn Die Fallunterscheidung so reicht, ist es nicht nötig, die Daten erst zu laden, die Fallunterscheidung in SSIS vorzunehmen und die geänderten Daten wieder zurück zu schreiben.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    Mittwoch, 13. Juni 2012 10:08
  • Wo bzw. wie kann ich das in eine SSIS Datenflusstask einbauen.

    Ich dachte mir, ich holle mir die Daten mittles einen "OLE DB-Quelle" und ändere dies entsprechend ab und schriebe diese mit eine "OLE DB-Ziel" in eine neue Tabelle.

    Mir ist nur nicht klar wo ich dies einbauen muss bzw. mit welchen Task ich da machen kann.

    • Als Antwort markiert stony17 Mittwoch, 1. August 2012 12:54
    Mittwoch, 13. Juni 2012 09:57

Alle Antworten