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