如何在SSIS软件包中保留在平面文件目的地中的空值



我创建了一个SSIS软件包。在DataFlow任务中,我将数据从OLEDBSOURCE传递到平面文件目的地。我想保留null值在平面文件中,但它是空白的。

@hadi提供了一个如何处理从flatfile读取的nulls的示例。我了解您想将零零写成扁平文件。正如已经解释的那样,FlatFiles没有零的概念。与SQL不同,它们没有数据类型。一切都是字符串。flatfile中的零等于空字符串。

来自您的语句

我想将空值保留在平面文件中,但它是空白的。

我只能假定您要打印文本" null"。进入扁平飞机。为此,您可以使用派生的列组件。将其放置在OLE DB源和平面文件目的地之间。在派生的列组件内检测空值,并将其从真实的空值施加到字符串值" null"中。使用以下三元表达式。

ISNULL([MyColumn]) ? "NULL" : [MyColumn]

希望这会有所帮助。如果您需要其他东西,请随时澄清您的问题。

在平面文件中,空和空白之间没有差异。因此,如果使用应用程序或其他SSIS软件包读取平面文件,则必须使用String.IsNullOrEmpty()IsNull()

等函数检查该值不是null或空的。

即:

在脚本组件中您可以按以下方式检查列值:

If Not Row.inCol_IsNull AndAlso _
   Not String.IsNullOrEmpty(Row.InCol) Then
  'Do SomeThing
  Row.OutCol = Row.inCol
  Else
  Row.OutCol_IsNull = True
  En If

如果使用应用程序

 If not strValue is nothing andAlso _
    not string.IsNullOrEmpty(strvalue) then
 ' do something
 end If

使用SSIS中的派生列转换,请尝试以下代码。用您的列替换[ColumnName]

ISNULL([ColumnName]) ? "NULL" : [ColumnName]

相关内容

  • 没有找到相关文章

最新更新