在脚本组件SSIS中使用c#进行dt_text到dt_str的转换

时间:2014-04-09 18:51:53

标签: c# ssis

我正在尝试使用脚本组件SSIS将dt_text(blob)转换为C#中的dt_str varchar(max),我不能使用dataconversion转换,因为它将字符限制为8000个字符,我在文本字段中有重要信息超过10000个字符(很多笔记信息)。

我从在线发布的示例开始

using System;
using System.Data;
using System.Text.RegularExpressions;    // Added
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
// Method that will be executed for each row.
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    if (!Row.Description_IsNull) 
    {
        cont.description = 
            System.Text.Encoding.Unicode.GetString(
                Row.Description.GetBlobData(
                    0, Convert.ToInt32(Row.Description.Length)));
    } 
}

在构建时我收到以下错误消息,不知道我在这里缺少什么。我是C#代码的新手.. (错误2'字符串'不包含'GetBlobData'的定义,并且没有扩展方法'GetBlobData'接受类型'string'的第一个参数可以找到(你是否缺少using指令或汇编引用?) )

提前致谢

1 个答案:

答案 0 :(得分:0)

您确定输入行上的“描述”列是DT_TEXT吗?检查你的输入。 GetBlobData是“BlobColumn”数据类型的方法 - 它看起来像源列是“String”数据类型。查看BufferWrapper.cs生成的文件,查看BlobColumn类型的列是否在那里..如果没有,则需要检查输入字段。