我有一个excel文件。我想将数据从excel文件提取到SQL Server表。并且数据已成功传输。在excel文件中,我从一行中删除了一个名为Risk
的列中的文本。文本很长。现在包执行在源,即excel文件中失败。错误显示为
[Audit [1]] Error: There was an error with output column "Risk" (100)
on output "Excel Source Output" (9). The column status returned was:
"DBSTATUS_UNAVAILABLE".
和
[Audit [1]] Error: SSIS Error Code
DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "output column "Risk"
(100)" failed because error code 0xC0209071 occurred, and the error
row disposition on "output column "Risk" (100)" specifies failure on
error. An error occurred on the specified object of the specified
component. There may be error messages posted before this with more
information about the failure.
当我从此行中删除此特定文本并清除除列名以外的整个数据并重新输入新数据时,会发生错误。即使我用相同的名称和相同的列名替换excel文件,但使用不同的数据。
答案 0 :(得分:0)
确保在运行SSIS包之前关闭了Excel。另外,尝试通过打开SSIS包刷新元数据,转到源和目标数据流项目中的列部分。似乎没有其他问题或者您以错误的方式描述/观察过它。
答案 1 :(得分:0)
我刚刚遇到这个问题......不要忘记在使用SSIS之前10年以上看过它。 Google-ing找到了解决方案。右键单击Excel连接>>高级编辑器>>输入和输出属性。在Excel源输出树视图中打开“输出列”,找到讨厌的列。将ErrorRowDisposition更改为RD_IgnoreFailure。
这让我分道扬 - - 我必须进入并更改DataType属性和之后的长度才能使其工作。然后我将ErrorRowDisposition恢复为失败并仅使用更改的DataType和长度运行它,然后运行。
使用这些选项,看看你是否可以使用它;我假设数据类型改变了它。