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
在SSIS中映射具有相同固定长度的nvarchar列时出现BLOB错误_Ssis - Fatal编程技术网

在SSIS中映射具有相同固定长度的nvarchar列时出现BLOB错误

在SSIS中映射具有相同固定长度的nvarchar列时出现BLOB错误,ssis,Ssis,我使用SSI在环境之间移动数据,在将输入列映射到输出列时,查找组件内部经常出现以下错误: 我修复了大多数位置的问题,使用nvarchar(MAX)作为问题的原因,但我仍然得到了它,即使输入和输出列的类型是nvarchar(100)。知道我为什么会犯这个错误吗?我以前尝试过对源数据进行数据转换,但没有成功 编辑 在下面,您可以找到我的查找配置的屏幕截图(命名的查找更新行) 编辑2 在文本编辑器中打开与项目相关的.dtsx文件时,有几个数据类型设置为nText(如下所示),我认为这是问题

我使用SSI在环境之间移动数据,在将输入列映射到输出列时,查找组件内部经常出现以下错误:

我修复了大多数位置的问题,使用nvarchar(MAX)作为问题的原因,但我仍然得到了它,即使输入和输出列的类型是nvarchar(100)。知道我为什么会犯这个错误吗?我以前尝试过对源数据进行数据转换,但没有成功

编辑

在下面,您可以找到我的查找配置的屏幕截图(命名的查找更新行)

编辑2

在文本编辑器中打开与项目相关的.dtsx文件时,有几个数据类型设置为nText(如下所示),我认为这是问题的原因

dataType="nText"

cachedDataType="nText"
我将这些行分别更改为以下行:

dataType="wstr"
length="100"

cachedDataType="wstr"
cachedLength="100"

但是当我构建时,我的更改将消失,并且ntext类型将再次设置

摆脱BLOB类型的解决方案是在高级编辑器中更改数据流中组件的数据类型(SSIS数据类型)

  • 对于每个组件,右键单击它,然后选择“显示高级” 编辑“

  • 单击“输入和输出属性”列

  • 对于此处列出的所有输入和输出列,在数据类型为DT_NEXT时将其更改为DT_WSTR,同时选择适当的长度


  • 摆脱BLOB类型的解决方案是在高级编辑器中更改数据流中组件的数据类型(SSIS数据类型)

  • 对于每个组件,右键单击它,然后选择“显示高级” 编辑“

  • 单击“输入和输出属性”列

  • 对于此处列出的所有输入和输出列,在数据类型为DT_NEXT时将其更改为DT_WSTR,同时选择适当的长度


  • 这对我不起作用,因为我使用的是ODBC数据源

    我必须使用ODBC源代码编辑器中的SQL命令文本框将blob表字段转换为varchar(max),然后转到高级编辑器并编辑所有转换为数据类型字符串[DT_STR]的ODBC源代码输出列


    希望这对别人有帮助

    这对我不起作用,因为我使用的是ODBC数据源

    我必须使用ODBC源代码编辑器中的SQL命令文本框将blob表字段转换为varchar(max),然后转到高级编辑器并编辑所有转换为数据类型字符串[DT_STR]的ODBC源代码输出列


    希望这对别人有帮助

    也许你忽略了什么。你能发布查找的截图吗?你是如何将该列转换为非BLOB的?@TabAlleman我在问题中添加了截图。我在包的不同位置都有这个问题,我想我没有做任何事情来将该列转换为非BLOB。也许我删除了目标表,并用另一种类型重新创建了它,只更改了Varchar的大小。我不知道为什么我的答案对您不起作用,它与此站点上给出的其他答案完全相同,因此我将标记为重复。您的包中可能有其他内容导致它无法工作,但重复问题中的答案是您问题的正确答案。@TabAlleman我认为它不是重复的。在这个问题上,作者特别声明他使用的是nvarchar(max),而这不是我的情况!我将在第二次编辑中为这个问题添加更多信息,因为我尝试了不同的方法,可能你忽略了一些东西。你能发布查找的截图吗?你是如何将该列转换为非BLOB的?@TabAlleman我在问题中添加了截图。我在包的不同位置都有这个问题,我想我没有做任何事情来将该列转换为非BLOB。也许我删除了目标表,并用另一种类型重新创建了它,只更改了Varchar的大小。我不知道为什么我的答案对您不起作用,它与此站点上给出的其他答案完全相同,因此我将标记为重复。您的包中可能有其他内容导致它无法工作,但重复问题中的答案是您问题的正确答案。@TabAlleman我认为它不是重复的。在这个问题上,作者特别声明他使用的是nvarchar(max),而这不是我的情况!我将在第二次编辑中为这个问题添加更多信息,因为我尝试了不同的方法,这就是为什么我想看到Advanced选项卡。我忘了它实际上在高级编辑器中。这就是为什么我想查看高级选项卡。我忘了它实际上在高级编辑器中。