【发布时间】:2015-07-18 19:49:46
【问题描述】:
使用 SQL Server 2014 SSIS 通过 Excel 源数据流导入供应商提供的 Excel 文件。我遇到的两个问题与将数据转换为 SQL 表有关。
文件中有一个文本列,其中包含价格(数值),我无法将其转换为 SQL 中的数字字段(十进制(8,2))。我已使用数据转换数据流任务将其转换为 DT_NUMERIC,但无法处理该字段。我还尝试让它通过数据转换任务并通过派生列将字段转换为数字。两者都失败了,我不知道如何以十进制/数字格式将其输入数据库。
在同一个文件中有三个日期字段,其日期在 Excel 中类似于 2015 年 7 月 18 日。我已经尝试使用数据转换和派生列进行类似的尝试,以将日期作为 SQL 日期格式输入数据库。我已经将日期转换为 DT_DBDATE 和 DT_DBDATE 和 DT_DBTIMESTANP,但都没有工作我还尝试使用月日和年,并使用 Substring/left/right 函数将它们重新排列为 SQL 日期格式来拆分字符串。也无济于事。
这是我尝试过的: Excel 源 ---> 数据转换 ----> 派生列 -----> OLE DB 目标 在将日期识别为文本的 excel 源中,我将其留在数据转换中,以便在我尝试过的派生列中处理它。
一个。 (DT_DBDATE)("20" + RIGHT(TRIM(sale_start),2) + "-" + LEFT(TRIM(sale_start),2) + "-" + SUBSTRING(TRIM(sale_start),4,2)) - 我在有和没有修剪的情况下都做到了这一点,结果相同。我也用过 Right(sale_start,4)。
b. (DT_DBDATE) sale_start
SQL 表的数据类型为 DATE。我也将其更改为 DATETIME 并使用 DT_DBTIMESTAMP 代替上面的 DT_DBDATE。
我无法更改我收到的文件,它需要以来自供应商的方式处理到数据库中。查看excel中的数据似乎没有理由不行。
非常感谢任何有关引入这些数据的方向。
2.
【问题讨论】:
-
当你的数据转换失败,会报什么错误?
-
什么错误,你能举一个导致错误的数据的例子吗?
标签: sql-server excel ssis type-conversion data-conversion