在 SSIS 数据流中提取错误列名称的困难是众所周知的。为了满足最小化脚本转换/组件的要求,我无法使用复杂的脚本解决方案来识别数据流中的错误列。但是,通过利用两行有据可查的 C# 代码,我可以获得错误列描述,它是数据查看器中显示的值 - 末尾带有列名称的字符串,例如:
“OLEDB_DEST - 加载原始维度.Inputs[OLE DB 目标输入].Columns[ProductID]”。
我正在寻找一种方法来使用派生列转换来一致地提取最后两个括号之间的字符串,即列名称。如有任何帮助,我们将不胜感激。
谢谢!
我尝试过使用 SUBSTRING 和 FINDSTRING 但没有成功。
您可以在用于提取
ErrorColumn - Description
的脚本中添加几行,这比使用派生列更简单:
IDTSComponentMetaData130 componentMetaData130 = this.ComponentMetaData as IDTSComponentMetaData130;
string errorColumn = componentMetaData130.GetIdentificationStringByID(Row.ErrorColumn);
int start = errorColumn.LastIndexOf('[') + 1;
int end = errorColumn.LastIndexOf(']');
Row.ErrorColumnName = errorColumn.Substring(start, end - start);