Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SSIS中导入列为空的电子表格时出现问题_Sql Server_Ssis_Etl_Ssis 2012 - Fatal编程技术网

Sql server 在SSIS中导入列为空的电子表格时出现问题

Sql server 在SSIS中导入列为空的电子表格时出现问题,sql-server,ssis,etl,ssis-2012,Sql Server,Ssis,Etl,Ssis 2012,将文件从电子表格导入sql数据库表时,我遇到了一个奇怪的问题。如果任何列的第一行为null,则即使该列的第5行或第10行中有数据,整列也会在表中反映为null。是否有人在将.xls数据导入sql server数据库时遇到此问题?同样,如果该列的第一行不是null,那么数据将正确导入 问题是,当导出包含混合数据类型列的Excel文件时,它将用null替换非主要类型。 这无法用直接的方法解决,但根据我的经验,有两种解决方法可以产生良好的效果 添加包含随机文本值(如abc)的虚拟第一行,并添加;IME

将文件从电子表格导入sql数据库表时,我遇到了一个奇怪的问题。如果任何列的第一行为null,则即使该列的第5行或第10行中有数据,整列也会在表中反映为null。是否有人在将.xls数据导入sql server数据库时遇到此问题?同样,如果该列的第一行不是null,那么数据将正确导入

问题是,当导出包含混合数据类型列的Excel文件时,它将用null替换非主要类型。

这无法用直接的方法解决,但根据我的经验,有两种解决方法可以产生良好的效果

  • 添加包含随机文本值(如
    abc
    )的虚拟第一行,并添加
    ;IMEX=1
    到connectionstring,这将强制excel从第一行读取数据类型,并将所有数据作为
    文本

  • 读取不带标题的Excel文件(在ConnectionString中,您应该有
    HDR=NO
    )。还要将
    IMEX=1
    添加到connectionstring,手动在
    Excel源文件中写入列名称,使用脚本组件跳过第一行(其中包含列标题)



  • 注意:使用OLEDB或Ace(在excel连接管理器中使用)提供程序从excel导入数据不会给出100%的结果,因此这些解决方法旨在尽可能减少错误

    您使用的是预构建的软件包还是导入向导?我在ssis中使用数据流选择源助手(.xls文件)和目标助手(sql database table)@tab AllemanExcel对于导入来说很糟糕,但我敢打赌您的问题是导入认为数据类型不是您所期望的。导入Excel时,[填写一个坏字]即使上一次列类型是int或date,thing也只会查看前几行。它会将其更改为nvarchar,任何int或date出现时都会将其置空。在连接字符串中包含IMEX=1的可能解决方案,但也不总是有效。@KeithL我们得到的数据是政府数据,它出现在spreadshee上t仅限于格式。在这方面的任何帮助都将非常有用。谢谢@Hadi,我将在周一回去工作时尝试。谢谢你的有用建议。我会让你知道兄弟。。。