Ich arbeite gerade an einer Datenbank mit '\ 0'-Zeichen in Feldern.SSIS-Skriptkomponente zum Entfernen von " 0" -Charachern in CHAR (n) -Feldern
Zum Beispiel das Feld
Category CHAR(4)
manchmal hat den Wert '\ 0 \ 0 \ 0 \ 0' (4 Null-Zeichen) und manchmal '' (4 leere Zeichen)
ich verwenden möchte eine Skriptkomponente, um alle Felder mit diesem Problem zu individualisieren. Ich habe das folgende Skript geschrieben, aber es funktioniert nicht, da das C# das '\ 0 \ 0 \ 0 \ 0' in eine leere Zeichenfolge konvertiert.
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Type rowType = Row.GetType();
foreach (IDTSInputColumn100 column in ComponentMetaData.InputCollection[0].InputColumnCollection)
{
PropertyInfo columnValue = rowType.GetProperty(column.Name.Replace("_", ""));
Object obj = columnValue.GetValue(Row, null);
if (obj is string)
{
string s = (string)obj;
StringBuilder sb = new StringBuilder();
foreach (char c in s)
{
if (c < ' ')
{
sb.Append(' ');
}
else
sb.Append(c);
}
columnValue.SetValue(Row, sb.ToString(), null);
}
}
}
Ist es möglich, das Feld zu einem Byte-Array anstelle einer Zeichenfolge, um in der Lage zu individualisieren ‚\ 0‘ Zeichen zu konvertieren?
mit einer Skriptkomponente ermöglicht es mir, es in einer generischen Weise zu schreiben, nur eine alle Spalten iterieren, anstatt den Code für jede einzelne Spalte zu schreiben. Ich habe das Problem gelöst, indem ich mit einem View, der Werte ersetzt, auf die Daten zugreift. Aber ich wandle immer noch, wenn es möglich ist, es mit einer Skriptkomponente zu tun. – sergiom