SSIS将平面文件的2列(第一个非空)加载到一个变量中

本文关键字:加载 变量 一个 平面文件 2列 第一个 SSIS | 更新日期: 2023-09-27 18:02:56

我有一个平面文件,包含以下列

蛋白质脂肪固体

在平面文件中,SampleID和Product仅在第一行中填充,其余行仅具有Rep_Number、Protein、Fat和Solids的值。其余行的SampleID和Product为空。因此,我的任务是用具有sampleID和Product的第一行填充这些空白行,并加载到表中。

所以任务是从平面文件中选择第一个非空SampleID和Product,并将它们放入变量中。剩下的都配置好了。如果我可以直接从平面文件中选择第一个非空SampleID和Product,并将其放入各自的变量中,我就可以从那里获取它。这就是我所需要的。

我可以在数据流任务中将脚本组件连接到平面文件源。我需要帮助的脚本选择第一个非空值(SampleID和产品),

需要帮助吗?

SSIS将平面文件的2列(第一个非空)加载到一个变量中

如果您确定需要将第一行-前2列的数据存储在变量中,并从那里获取数据,并且不需要更改原始方法,那么请尝试:

  1. 您需要一个NEW变量来跟踪行计数。设这是一个整数,设它为0。这将有助于只处理第一行,而跳过其余行。我们把它命名为Row_Count
  2. 从连接到平面文件的组件中检索数据作为源后,将其连接到"脚本组件"并单击"编辑"。
  3. 在"脚本转换编辑器"中,单击左侧的"输入列",选择想要检索值的列(例如Column_Name1和Column_Name2)(即第1和第2)
  4. 点击左侧的'Script'
  5. 在"自定义属性"下,展开"读写变量"。添加您打算用于存储值的两个变量和Row_Count变量。
  6. 点击"编辑脚本"。在打开的编辑器中,双击右边的'ScriptMain.vb'。
  7. 在Public Overrides子PostExecute(){}过程中键入如下:

    如果变量。Row_Count = 0

    变量。Your_Variable1 =行。Column_Name1

    变量。Your_Variable2 =行。Column_Name2

    变量。Row_Count =变量。Row_Count + 1

    结束如果

  8. 你的变量中有所需的值,继续你的逻辑的其余部分。

注意:

  1. 如果你没有将变量添加到"读写变量"中,你将无法在脚本中访问它们。
  2. 基于你可能在脚本中添加的任何其他代码,如果它们不存在,你需要包含额外的头文件。

如果有帮助,请把我的帖子标记为答案:)