使用' - '导入数字和科学记数法

时间:2014-06-12 03:06:43

标签: sql-server ssis

您好我正在尝试从excel文件导入并创建一个表。

我遇到了两个问题,一个是当我使用导入向导将文件作为.xlsx导入时,它自动将字段设置为浮点数并且不允许我在“编辑映射”中更改它“对话框。然后它会丢弃像389-1145这样的破折号。

如果我将文件保存为.csv并使用向导导入它,它会将该字段作为varchar导入,但是科学记数法如1.1e + 11的条目将被导入为简单的'1.1 e + 11'而不是110000150192.

我确信我不是第一个遇到这个问题的人,所以非常感谢任何提示。

1 个答案:

答案 0 :(得分:0)

首先你要问的好问题,我有同样的问题。根据我们的数据库设计导入excel时发生了什么,它考虑文本到文本,数字为浮动,日期时间为日期 - 时间(mm-dd-yyyy格式)。

首先要创建一个临时表,其中所有数据类型都为nvarchar,因此任何垃圾值条目都将在db中接受。现在,在数据流之后,运行一个sp(在运行ssis之前创建),它只是将您的数据从临时文件夹传输到您想要的数据格式和值的实际表。

使用sqltask在ssis中运行sp。

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/f1d17dcc-86ec-4c05-aeb4-e117f5e791f6/how-do-i-call-a-stored-procedure-to-insert-data-in-sql-server-in-ssis-data-flow-task?forum=sqlintegrationservices

http://www.sqlis.com/sqlis/post/OLE-DB-Command-Transformation.aspx