0

文字列置換を実行する必要がある 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 式でこれを行うことはできますか?

ありがとう、

明細書

4

1 に答える 1

0

実際、私は物事をスピードアップする簡単な方法を考え出しました...置換が行われたときにのみAddBlobDataメソッドを呼び出すだけです。私の場合、多くの交換が行われるとは思いません。これは間違いなく変革をスピードアップします。これが他の人に役立つことを願っています。

明細書

于 2013-03-19T12:07:04.937 に答える