我正在尝试使用脚本组件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指令或汇编引用?) )
提前致谢
答案 0 :(得分:0)
您确定输入行上的“描述”列是DT_TEXT吗?检查你的输入。 GetBlobData是“BlobColumn”数据类型的方法 - 它看起来像源列是“String”数据类型。查看BufferWrapper.cs生成的文件,查看BlobColumn类型的列是否在那里..如果没有,则需要检查输入字段。