一尘不染

将大字符串传递给 Pipelinebuffer(C# 和 SSIS)

sql

我正在尝试将一个大字符串(超过 8000 个字符)加载到 SQL Server 数据库中。(来自文件)

PipelineBuffer用来添加一行并填充输出。

使用脚本会返回一个错误,指出每个字段不能处理超过 8000 个字符。

使用 Text streamer 将阻止我添加行,因为它将 Text streamer 转换为 blob 组件并将其标记为只读。

我的工作是更改BufferWarpper.cs并加载我的数据。无论如何加载数据而不改变BufferWarpper.cs(因为这个脚本是自动生成的,所以不要改变)


阅读 88

收藏
2022-07-22

共1个答案

一尘不染

Blob 列有一个名为 AddBlobData() 的方法来设置值。在下面的示例中,Column1 是 NText 数据类型:

public override void CreateNewOutputRows()
    {
        using (var sr = new StreamReader(@"<path to file>"))
        {
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                string[] columns = line.Split(',');
                Output0Buffer.AddRow();
                Output0Buffer.Column1.AddBlobData(Encoding.Unicode.GetBytes(columns[0]));
            }
        }
    }
2022-07-22