我有一张电子表格。它包含公司信息,如姓名、地址、电话、电子邮件等。我想要做的就是将一个平面导入到它可以创建的表中,这样我就可以对它做一些处理了。我只是在使用。我不使用BCP。
它一直持续到最后,给了我一个错误:
封锁行动停止了。
错误0xc020902a:数据流任务1:“Source-crm_company$.OutputsExcel Source Output.ColumnsDirections”由于发生截断而失败,而“Source-crm_company$.OutputsExcel Source Output.ColumnsDirections”上的截断行处理指定截断失败。在指定组件的指定对象上发生截断错误。( Server导入和导出向导)
区块报价
首先,我告诉DTS忽略任何截断错误。源字段为int或nvarchar。我编辑映射并强制它为int,而不是针对所需的列浮动。我已将默认列大小从255设置为510。对于2列,方向和注释,它已经确定方向是nvarchar,Notes是nvarchar(max)。我重写了第一个方向,这样它就被视为nvarchar(max),并且我可以在它运行后创建的表中看到它。但是,当它运行时,每次都会出现上述错误。
我只想把这些数据放进桌子里。就这样。如果我首先手动指定一个表并导入,它仍然是错误的。在方向上最长的文本是978个字符,所以它不是很大。我不在乎它是否被截断,我只是不希望它在它觉得需要的时候停止。有16000行导入,在失败之前只有470个导入。
我不知道源文件中哪一行会失败,因为奇怪的是,DTS没有按其顺序、在电子表格中提取数据。去想一想。我试图通过插入20行文本数据来重写DTS的愚蠢调度,以决定列格式是什么,但这仍然失败。
发布于 2017-08-17 10:32:44
我尝试了很多方法来解决这个问题,发现将电子表格导入Access,然后导入对SQL的访问非常容易。工作在5分钟内完成。
发布于 2017-08-16 15:27:17
建议:
如果您有,那么开发一个SSIS包并:
1.)尝试为失败的行添加分支,以重定向这些行。您可以通过从excel源添加带有红线的路由来做到这一点。运行包后,可以对成功和失败的行进行一些分析。
2.)重要的是要为Server使用何种类型的连接。我对原生SQL有很多问题,所以我更喜欢使用ADO.NET或OLE DB连接类型。
与巫师:
3.)尝试使用类型转换
4.)将文件保存到TXT,然后执行ETL。
https://stackoverflow.com/questions/45717314
复制相似问题