【问题标题】:Bulk Insert Control Flow Task(SSIS) complete without loading the source file, but no errors too批量插入控制流任务(SSIS)完成,没有加载源文件,但也没有错误
【发布时间】:2017-05-19 05:37:08
【问题描述】:

我尝试使用 SSIS 2012 控制流中的“批量插入任务”将内容如下的 csv 文件加载到 SQL Server 2012 数据库表 NYC_Business_Establishment_DataSet 中。控制流任务完成没有任何错误,但我在目标表中看不到这条记录。请指教。

CSV 文件内容

DBA,Establishment Street,Establishment Zip,Establishment Borough,Business Sector,Establishment Category,Type of Cuisine,Number Of Employees,Actual Opening Date
Palermo Salumeria,33-35 Francis Lewis Blvd,11358,Queens,,,,,
Foragers City Grocers,300 West 22nd Street,10011,Manhattan,,,,,
Cultural Xchange,35 Lafayette Ave,11217,Brooklyn,,,,3,

目标表 使用 [数据库] 去吧

/****** Object:  Table [dbo].[NYC_Business_Establishment_DataSet]    Script Date: 5/19/2017 3:31:55 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[NYC_Business_Establishment_DataSet](
    [DBA] [varchar](1000) NULL,
    [Establishment Street] [varchar](1000) NULL,
    [Establishment Zip] [int] NULL,
    [Establishment Borough] [varchar](100) NULL,
    [Business Sector] [varchar](1000) NULL,
    [Establishment Category] [varchar](1000) NULL,
    [Type of Cuisine] [varchar](100) NULL,
    [Number Of Employees] [int] NULL,
    [Actual Opening Date] [date] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

谢谢

【问题讨论】:

  • 添加 CSV 的更多详细信息。你想要什么进入最终输出?给出 CSV 文件的链接

标签: ssis ssis-2012 msbi


【解决方案1】:

输入数据文件有问题。 对于他最后两列[员工人数],[实际开业日期],文件中的数据为空字符串且不为空。所以它失败了。

我可以使用数据流任务加载文件。添加派生列转换以将字符串转换为 NULL。

TRIM([Number Of Employees]) == "" ? NULL(DT_I4)  : (DT_I4)[Number Of Employees]
TRIM([Actual Opening Date]) == "" ? NULL(DT_DBDATE) : (DT_DBDATE)[Actual Opening Date]

【讨论】:

  • 您好斯里尼瓦萨,感谢您的回复。您能否建议您如何发现最后两列有一个空字符串而不是空字符串?我无法从文件中辨认出来。
  • 当 BCP 失败时,我尝试使用 DataFlow 加载它。在列中出现无效字符错误,所以猜测应该是空刺的问题。一旦我添加了派生列转换,我就可以成功加载数据。
  • 哇,聪明,感谢您的提示。将尝试一次并关闭此问题。
【解决方案2】:

在数据流中选中“将源中的空值保留为数据流中的空值”复选框解决了此问题。

数据文件中的字段是一致的,只有当目标字段为整数和日期时才会出现问题。

我想当csv文件有空值时,它应该被插入为NULL。

如果有其他情况请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多