2

我有一个带有 OLEDB 源的 DFT - 带有名为描述数据类型的列的 sql 表NVarchar(Max)

select max(len(description)) from tbl_Test -- returns 10,000

执行转换的脚本转换编辑器

Output0Buffer.AddRow();
        Output0Buffer.TransId = Row.id;
        System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
// i am splitting a column here into multiple records - no issues here
        byte[] bytes = Row.descr.GetBlobData(0, (int)Row.descr.Length);
        string myString = encoding.GetString(bytes);
        Output0Buffer.TransDescr = myString;

如果输出列是,则此代码可以正常工作,DT_WSTR但问题是这里的最大值是8000因此文本被截断的运行时错误,它确实会做我不想要的。

如果我将输出列作为文本流DT_NTEXT)上面的代码给出错误。

从这个脚本转换中,目标是一个带有 desc 的 sql 表nvarchar(max)

4

1 回答 1

0

在脚本组件DT_NTEXT中用作输出列的数据类型,并使用以下代码。

Output0Buffer.TransDescr.AddBlobData(Row.descr.GetBlobData(0, (int)Row.descr.Length))

参考

于 2019-01-27T21:11:46.270 回答