SQL Server Native Client 11.0中的Varchar(max)问题

时间:2017-02-03 07:47:30

标签: sql-server ssis

我尝试通过SSIS将数据导入sql server,其中一列是varchar(max)数据类型。我收到以下错误。看起来SQL Server Native Client 11.0不支持varchar(max)。任何人都可以评论,我该如何解决这个问题。感谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

SSIS读取数据类型为Varchar(Max)DT_TEXT数据类型的列(BLOB列)所以你必须做一些解决方法:

1-如果您可以将源列数据类型更改为Varchar(8000) 8000是varchar数据类型的最大长度

2-添加脚本组件并将列标记为输入并添加数据类型为DT_STR(4000)的输出列,并在脚本中使用以下函数将DT_Text列内容转换为字符串

string BlobColumnToString(BlobColumn blobColumn)
{
    if (blobColumn.IsNull)
        return string.Empty;

    var blobLength = Convert.ToInt32(blobColumn.Length);
    var blobData = blobColumn.GetBlobData(0, blobLength);
    var stringData = Encoding.Unicode.GetString(blobData);

    return stringData;
}

注意:Varchar最多可以存储8000个字符(nvarchar = 4000),而varchar(max)可以存储2 GB。