我有一个带有 DT_TEXT 列的 SSIS 2005 数据流,我需要在该列上执行一些字符串替换。我尝试在派生列任务中执行此操作,但这样的表达式将列的大小限制为 4000 个字符。否则会出现截断错误。
REPLACE(REPLACE(REPLACE((DT_STR, 4000, 1252) [COMMENT],"&","&"),"	","\t")," ","\n")
所以我转向了一个脚本转换来做同样的字符串替换,如下所示:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim blobData() As Byte = Row.COMMENT.GetBlobData(0, CInt(Row.COMMENT.Length))
Dim blobString As String = Encoding.Unicode.GetString(blobData)
blobString.Replace("&", "&").Replace("	", "\t").Replace(" ", "\n")
Row.SCRUBBEDCOMMENT.AddBlobData(Encoding.Default.GetBytes(blobString))
End Sub
这工作正常,但它太慢了。我有什么办法可以加快速度吗?或者这可以在没有截断的 SSIS 表达式中完成吗?
谢谢,
账单