Mittwoch, 18. Januar 2012

Uniqueidentifier, GUID - The value could not be converted because of a potential loss of data

Wenn beim Import von Datensätzen mit GUIDs so ein Konvertierungsfehler auftritt, wird es höchstwahrscheinlich an den fehlenden geschweiften Klammern liegen, die normalerweise eine GUID umgeben sollen. Hier ist z.B. eine GUID, die in einem SSIS Paket ohne Weiteres importiert werden kann:
{AC4939C4-E35D-4DEE-B9D0-D6B888854F9C}
Wenn die geschweiften Klammern fehlen, sollte man versuchen den Export-Prozess zu überprüfen und so anzupassen, dass die GUIDs von benötigen geschweiften Klammern umgerahmt werden. Ist die Möglichkeit den Export anzupassen nicht gegeben, kann man immer noch den Import mit dem Task Derived Column (Transformation für abgeleitete Spalten) erweitern, um das Konvertierungsproblem zu lösen.
Hier ist ein Beispiel vom Transformationsausdruk, der im Feld Expression der Transformation für abgeleitete Spalten angegeben wird:
(DT_GUID)("{" + [GUID-Column-Name] + "}")
Eins muss man noch beachten, dass eine GUID vor der Konkatenation als ein String aus der Quelle ausgelesen werden muss. Dafür konfiguriert man die Eigenschaft DataType der GUID-Spalte im Connection Manager Editor als [DT_STR], sonst schlägt die Transformation fehl.
Links:

Keine Kommentare:

Kommentar veröffentlichen