【问题标题】:Export null values to Flat file Source将空值导出到平面文件源
【发布时间】:2013-03-27 11:35:05
【问题描述】:

我有一个包,它将数据从表导出到平面文件目标。在另一台服务器中,导出的文本文件将导入到表中。实际上我的问题是,包应该将 NULL 作为 NULL 导出和导入,将空字符串作为空字符串导出和导入。

我知道我们在平面文件源中有一个选项“将源中的空值保留为数据流中的空值”。但是它会将所有的空字符串都变成空值。

谁能建议我以更好的方式实现这一目标。

【问题讨论】:

  • 检查列的长度为Len(LTRIM(Column))。如果是0,则分配null。在Flat File Source之后的派生列中使用它
  • @praveen:我不想用 null 替换空字符串。我必须将 null 保留为 null,并将空保留为空。
  • 如果是这种情况,请不要在 Flat file connection 中选择属性 To retain null values in the source 。因此,如果您有NULL 或``平面文件将在下游处理相同的值
  • 问题是,在将空值导出到平面文件目标时,所有空值都变为空字符串。我们只有 2 个选项 1. 将所有空和 null 导入为空或 2. 将所有空和 null 导入为空。

标签: ssis flat-file dataflowtask


【解决方案1】:

BCP 可能是这里的解决方案。运行 BCP 将源表导出到文件,然后运行 ​​BCP 将文件导入目标表。可以通过 xp_cmdshell 调用 BCP,因此它可以作为执行 SQL 任务运行。有趣的是,BCP 将空字符串输出为 null,将 null 输出为空字符串。但如果我们同时使用 BCP 进行导出和导入,则值将被正确映射。

【讨论】:

    【解决方案2】:

    我会将“真”空值导出为不同的文本,例如 <null>,然后在导入时将它们替换为空值。

    【讨论】:

    • 您能否告诉我您将使用哪个任务将每列中的 null 替换为不同的值。我的表有一百多列。
    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2023-03-18
    • 2011-08-22
    • 1970-01-01
    • 2021-10-02
    相关资源
    最近更新 更多