我有一个SSIS包,它从SQL Server导入数据并将其放入Excel目标文件中。进入ADO源组件的高级编辑器时,我有一个字段Description
,其外部数据类型为Unicode String
,长度为4000,输出数据类型为Unicode Text Stream
(此是为了确保String
长度> 255可以导入Excel)。现在,当我进入Excel目标组件的高级编辑器时,数据类型卡在Unicode String
,长度为4000.它允许我更改它,但在我单击保存后立即恢复。运行包会导致失败,因为Description
字段中的数据长度为> 255.我已经搜索过无数关于这个问题的线索,例如this,但还没有找到解决方案。任何帮助将不胜感激。
答案 0 :(得分:5)
这可能非常简单:在您对Source组件进行任何更改后,我发现我必须双击绿色箭头 - 显示元数据不仅仅显示它 - - 它也基于源组件更新元数据。只有在此之后,Destination组件才能“看到”对Source组件的更改。
但是如果这还不够:在进行这些更改之前,在我让它们生效之前,我经常不得不(1)删除目标组件,(2)删除目标连接对象SSIS,以及(3)删除/重命名/移动实际的Excel电子表格,然后通过单击按钮(在目标组件中)生成一个新的电子表格,该按钮从元数据生成新的目标文件。
答案 1 :(得分:0)
我以前使用Union All组件遇到了这个问题,他们只是设法修复它而不删除并重新创建组件是打开/编辑它,将有罪的字段设置为“忽略”在输入上,按确定,然后返回并将输入设置回原始字段,然后按确定。
这似乎可以解决问题。也许其他组件的类似方法可能有效。