Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server本机客户端11.0中的Varchar(max)问题_Sql Server_Ssis - Fatal编程技术网

Sql server SQL Server本机客户端11.0中的Varchar(max)问题

Sql server SQL Server本机客户端11.0中的Varchar(max)问题,sql-server,ssis,Sql Server,Ssis,我试图通过SSIS将数据导入sql server,其中一列是varchar(max)数据类型。我收到了下面的错误。SQL Server本机客户端11.0似乎不支持varchar(max)。任何人都可以评论,我如何解决这个问题。谢谢 SSI将数据类型为Varchar(Max)的列读取为DT\u TEXT数据类型(BLOB列),因此您必须采取一些变通措施: 1-如果可以将源列数据类型更改为Varchar(8000)(8000是Varchar数据类型的最大长度) 2-添加脚本组件并将列标记为输入,添加

我试图通过SSIS将数据导入sql server,其中一列是varchar(max)数据类型。我收到了下面的错误。SQL Server本机客户端11.0似乎不支持varchar(max)。任何人都可以评论,我如何解决这个问题。谢谢


SSI将数据类型为
Varchar(Max)
的列读取为
DT\u 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。

这是否意味着这是SQL SERVER本机客户端11.0中的限制?不,我认为在较新版本的SQL SERVER中也是如此。这个问题是因为Varchar最多可以存储8000个字符(nvarchar=4000),而Varchar(max)可以存储2 GB