• 关于向SQL Server导入Excel出错的统一解决方法


    导入前请先关闭本地文件,解除占用

    截断——长度或类型不匹配(右键单元格格式)

    凡是提示报错中带有"截断"等字样,注意看一下里面提示的列是哪个。比如F4是第四列,点击back回到编辑映射那里,点预览看一下格式是否不匹配。

    这里主要原因在Excel方,有的Excel的数据长度不像表面上那样,最好的办法直接设定长一点的char类,或者直接nvarchar变长就好。另外右键设置单元格格式看一下是什么类型的。

    通常都是长度和类型的原因,报错信息给我们最直接的反馈就是哪一列出了问题,从这两个角度入手很好解决的。

    解决后最好关掉导入向导重新来一遍,否则可能会出现因文件占用出现的报错。

    约束——主键重复或Excel有空行

    凡是提示如下内容:

    消息
    
    错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。
    已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 10.0” Hresult: 0x80004005 说明:“未指定的错误”。
     (SQL Server 导入和导出向导)
     
    错误 0xc020901c: 数据流任务 1: 输入“Destination Input”(60) 上的 输入列“studentId”(127) 出错。返回的列状态是:“该值违反了该列的完整性约束。”。
     (SQL Server 导入和导出向导)
     
    错误 0xc0209029: 数据流任务 1: SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“输入“Destination Input”(60)”失败,错误代码为 0xC020907D,而且针对“输入“Destination Input”(60)”的错误行处理设置指定一旦出错就失败。在指定组件的指定对象上出错。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
     (SQL Server 导入和导出向导)
     
    错误 0xc0047022: 数据流任务 1: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“Destination Input”(60)时,组件“目标 - t_Student”(47)的 ProcessInput 方法失败,错误代码为 0xC0209029。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
     (SQL Server 导入和导出向导) 

    错误很明显,解决方案很隐蔽。看第二段,这里翻译过来就是Excel中的studentId列有重复,Excel选中“数据”——“删除重复项”即可。

    如果还是不行,那么就是因为有空行,NULL值的存在当然也是违反了主键约束性的了!!

    小技巧:复制显示出来的表格数据到新建的表中,省得再去排查空行(注意,Excel删除重复的功能对空行无用,亲测)

    空列

    举一反三,还可能是空列造成提示"列不能为0”的情况。

    少列

    似乎这是个不常见的错误,但有时候的确可能有疏忽,此时会提示:

    SSIS验证失败,并返回验证状态“ VS_ISBROKEN”或"不能存在空列的情况"

    拓展提示

    另外说一下导入要注意的几个细节,其余的直接下一步就好。我的目前是2020版本,不过亲测与之前的并无不同。

    1.数据源选择“Microsoft Excel”,版本选择97-2003比较稳定。首行包含列名称这里,如果第一行就是数据,那么就取消勾选

    (注意默认是勾选的)。

    如果第一行是表头(标题等),那么就默认选中。

    2.目标选择“SQL Server Native Client 11.0 ”,身份验证就是连接数据库一开始的登录信息,然后选要导进的数据库。

    3.选择表和视图这里,如果你是要导入已经新建好的表中,那么要勾选

    通常表格只用到了'Sheet1$'(就是Excel左下角的工作区),在上面勾选以后点击目标,找到数据库对应的表即可。

    如果是直接导入一个新表,那么就不用编辑目标了,直接下一步就好。可以点击预览看一下顺序对不对。

    如果列的顺序不一致,点击编辑映射就好,通常编辑Excel的时候就提前对齐了,算是习惯问题。

  • 相关阅读:
    c++指向数组的指针,数组指针
    c#和c++互操作(平台调用相关)
    LA和TA
    RSCP RSRP RSRQ
    HARQ(Hybrid Automatic Repeat Request ) 混合自动重传请求
    传输层的几个部分的ALCAP、SSCOP、MTP3-B、SCCP、SAAL、SCCF、STC、IP、UDP、GTPU
    SSCOP Service Specific Connection Oriented Protocol 业务特定面向连接协议
    SSCF-UNI
    PCRF、PCEF、PCC(转帖)
    LTE中的几个概念——LTE,SAE,EPC,EPS
  • 原文地址:https://www.cnblogs.com/ccwx/p/13139663.html
Copyright © 2020-2023  润新知