我目前正在开发一个字段中有“\0”字符的数据库。
例如领域
Category CHAR(4)
有时值为 '\0\0\0\0' (4 个零字符),有时为 ' ' (4 个空白字符)
我想使用脚本组件来区分存在此问题的所有字段。
我编写了以下脚本,但它不起作用,因为 C# 将 '\0\0\0\0' 转换为空字符串。
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);
}
}
}
是否可以将字段转换为字节数组而不是字符串,以便能够区分“\0”字符?
您需要在脚本组件中执行此操作吗?您不能使用派生列任务并使用子字符串来提取每个列值吗?您也可以使用 Trim 来删除任何空格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)