无法更改 SSIS Excel 目标列的数据类型

3
我有一个SSIS包,从SQL Server导入数据并将其放入Excel目标文件中。当进入ADO源组件的高级编辑器时,我有一个字段描述,它具有外部数据类型Unicode String,长度为4000,并且输出数据类型为Unicode Text Stream(这是为了确保可以将长度大于255的String导入Excel)。现在,当我进入Excel目标组件的高级编辑器时,数据类型被固定为Unicode String,长度为4000。它允许我更改它,但在我点击保存后立即恢复。运行该包会导致失败,因为我在描述字段中有长度大于255的数据。我已经搜索了无数关于此问题的主题,例如这个,但没有找到解决方案。任何帮助都将不胜感激。

感谢您在下面点赞和接受答案。问题是:什么起作用了?是绿色箭头那么简单(有时候需要的东西很出乎意料,不是吗?)...还是您必须删除/重新创建(1)、(2)或(3)? - Doug_Ivison
2个回答

5
这可能很简单:在您进行与源组件相关的任何更改后,我发现我必须双击绿色箭头——显示元数据不仅仅是展示它——它还会根据源组件更新元数据。只有这样,目标组件才能够“看到”源组件的更改。

但如果这还不够:在进行这些更改时,为了使其生效,我经常需要(1)删除目标组件,(2)在SSIS中删除目标连接对象,(3)删除/重命名/移动实际的Excel电子表格,然后通过点击(在目标组件中)生成新的目标文件按钮,从元数据中生成一个新的目标文件。


1
以上的(1)和(2)似乎解决了问题,同时也给了SSIS一个新的Excel工作簿来处理。它可能记住了一些旧的元数据或其他什么(猜测不好),谁知道呢。无论如何,谢谢! - Sloth Armstrong

0

我以前在使用Union All组件时遇到过这个问题,而且我唯一能够在不删除和重新创建组件的情况下解决它的方法是打开/编辑它,将输入中的有问题字段设置为“忽略”,然后按OK,再返回并将输入设置回原始字段,最后再按OK。

这种方法似乎很有效。也许对于其他组件也可以采用类似的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接