2010-05-27 53 views
1

我有一个excel文件。我想将数据从excel文件中提取到SQL Server表中。数据成功传输。在excel文件中,我从一行中删除了一列名为Risk的文本。文本很长。现在,程序包执行失败,即源于excel文件。该错误显示为从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

当你说你“删除了文本”时,你究竟做了什么?你是否手动打开了excel文件并删除了整个列,是否删除了该列中的单个单元格,是否用空格替换了列? – 2010-05-27 09:57:42

+0

我删除了该列中的单个单元格。如果单元的长度低于256,则会发生相同的错误。它只发生在特定的细胞。 – 2010-05-27 10:00:56

+0

或者什么是从excel文件导入数据到sql server的正确方法? – 2010-05-28 11:18:47

回答

0

确保在运行SSIS包之前关闭了excel。另外打开SSIS包,尝试刷新元数据,转到源和目标数据流项中的列部分。似乎没有其他问题,或者你以错误的方式描述/观察它。

+0

当您在第一行替换具有不同数据但列名相同的Excel文件或在清除除列名之外的旧数据后输入新数据时发生错误。因此数据拉失败。我通过刷新元数据完成了。该错误暂时得到解决。但是,一旦您将其部署到服务器上,请执行上述过程。如果失败,则无法在SQL Server上刷新该软件包。 – 2010-06-02 11:01:16

0

我刚刚遇到了这个......不要回想在使用SSIS的10年以前看到它。 Google-ing找到了一个解决方案。右键单击Excel连接>>高级编辑器>>输入和输出属性。在Excel Source Output树视图中打开“Output Columns”,然后找到麻烦的列。将ErrorRowDisposition更改为RD_IgnoreFailure。

这让我有一部分 - 我不得不进入并更改DataType属性和长度,然后才能使其工作。然后,我将ErrorRowDisposition放回失败,并仅使用更改的数据类型和长度运行它,然后运行。

玩这些选项,看看你是否可以得到它的工作;我假设数据类型改变了它。