簡體   English   中英

SSIS將平面文件的2列(僅第一個非null)加載到變量中

[英]SSIS load 2 columns of a flat file (first non null only) into a variable

我有一個帶有以下各列的平面文件

SampleID Rep_Number產品蛋白質脂肪固體

在平面文件中,SampleID和Product僅填充在第一行中,其余行僅具有Rep_Number,蛋白質,脂肪,固體的值。 其余行的SampleID和Product為空白。 因此,我的任務是用具有sampleID和Product的第一行填充這些空白行,然后加載到表中。

因此,任務是從平面文件中選擇第一個非null的SampleID和Product並將其放入變量中。 其余的都配置好了。 如果我可以直接從平面文件中選擇第一個非null的SampleID和Product並將其放入各自的變量中,則可以從那里獲取它。 這就是我所需要的。

我可以在數據流任務中將腳本組件連接到平面文件源。 我需要有關腳本的幫助,以選擇第一個非null值(SampleID和Product),

請需要幫助。 提前致謝。

如果您確定需要將第一行-第一兩列的值存儲在變量中,然后從那里獲取,並且不需要更改原始方法,請嘗試以下操作:

  1. 您需要有一個NEW變量來跟蹤ROW COUNT。 將其設為整數並將其設置為0。這將有助於僅處理第一行而跳過其余行。 我們稱它為Row_Count
  2. 從作為源文件連接到平面文件的組件中檢索數據后,將其連接到“腳本組件”,然后單擊“編輯”。
  3. 在“腳本轉換編輯器”中,單擊左側的“輸入列”,然后選擇要從中檢索值(即第一和第二)的所需列(例如Column_Name1和Column_Name2)。
  4. 點擊左側的“腳本”
  5. 在“自定義屬性”下,展開“ ReadWriteVariables”。 添加您打算用於存儲值的2個變量以及Row_Count變量。
  6. 點擊“編輯腳本”。
  7. 在打開的編輯器中,雙擊右側的“ ScriptMain.vb”。
  8. 在Public Overrides Sub PostExecute(){}過程下,鍵入以下內容:

    如果Variables.Row_Count = 0則

    Variables.Your_Variable1 = Row.Column_Name1

    Variables.Your_Variable2 = Row.Column_Name2

    Variables.Row_Count =變量.Row_Count + 1

    萬一

  9. 您的變量中有所需的值,請繼續執行其余的邏輯。

注意:

  1. 如果不將變量添加到“ ReadWriteVariables”中,將無法在腳本中訪問它們。
  2. 根據您可能在腳本中添加的任何其他代碼,如果不存在其他標頭,則需要包括其他標頭。

如果有幫助,請標記我的帖子為答案:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM