DTS 导入失败

DTS Import failing

我有一个电子表格。它包含公司信息,例如名称、地址、phone、电子邮件等。我想做的就是将 SQL 平面导入到它可以创建的 table 中,这样我就可以做一些对其进行处理。我只是在使用 MS SQL 导入向导。我没有使用 BCP。

它一直走到最后,给我这个错误:

Blockquote Operation stopped...

错误 0xc020902a:数据流任务 1:"Source - crm_company$.Outputs[Excel Source Output].Columns[Directions]" 失败,因为发生了 t运行cation,并且 "Source - crm_company$.Outputs[Excel Source Output].Columns[Directions]" 上的 t运行cation 行配置指定失败t运行阳离子。指定组件的指定对象发生 t运行cation 错误。 (SQL 服务器导入和导出向导)

Blockquote

首先,我已经告诉 DTS 忽略任何 t运行cation 错误。源字段是 int 或 nvarchar。我编辑映射并将所需列强制为 int 而不是 float。我已将默认列大小从 255 设置为 510。对于 2 列,方向和注释,它已确定方向为 nvarchar,注释为 nvarchar(max)。我覆盖了 Directions 一个,以便将其视为 nvarchar(max),我可以在 table 中看到它在 运行 之后创建。但是,当它 运行s 时,它每次都会因上述错误而失败。

我只是想把这个数据变成table。就这样。如果我先手动指定一个 table 并导入,它仍然会出错。 Directions 中最长的文本有 978 个字符,所以它并不大。我不在乎它是否满足 运行,我只是不想让它在需要时停止。有 16000 行导入,只有 470 行导入失败。

我不知道源文件中哪一行没有通过,因为奇怪的是,DTS 没有按照数据在电子表格中的顺序提取数据。去搞清楚。我试图通过插入 20 行文本数据来覆盖 DTS 在决定列格式时的愚蠢尝试,但仍然失败。

建议:

如果您有 Visual Studio BI,则开发一个 SSIS 包并且:

1.) 尝试为失败的行添加一个分支以重定向这些行。您可以通过从 excel 来源添加一条带有红线的路线来做到这一点。 运行打包后,可以对成功和失败的行进行一些分析。

2.) 重要的是您为 SQL 服务器使用什么类型的连接。我的原生 SQL 客户端有很多问题,所以我更喜欢使用 ADO.NET 或 OLE DB 连接类型。

使用向导:

3.) 尝试使用类型转换

4.) 将文件保存到 TXT,然后进行 ETL。

我尝试了很多方法来解决这个问题,发现将电子表格导入 Access,然后将 Access 导入 SQL 会容易得多。 5 分钟内完成作业。