2015-10-06 42 views
-3

SSIS中的新增功能。我想開發數據驗證包。SSIS中的數據驗證

  1. 強制性字段檢查:如果爲空,則拒絕該記錄
  2. 如果字段長度> 50,則拒絕該記錄

SSN

  1. 如果字段長度> 12,則拒絕記錄
    1. 如果SSN的格式不正確,則發出警告並處理沒有SSN值的rhe記錄。
    2. 有效格式:刪除所有非數字字符後應顯示9位數字值。
    3. 僅發送9位到MDM

像這些我有30條規則。如果驗證失敗,例如「Mandatory feild is missing」,某些規則,我必須顯示錯誤消息。我需要將拒絕記錄發送到單獨的表。如果一條規則對於一條記錄失敗,則不應檢查其餘規則。它去拒絕表。請幫我建立一個包。提前致謝!

+0

我會最初使用條件開關過濾一些失敗的記錄,但有30條規則,可能是一個想法,使用輸入/輸出列腳本元素來分析數據並設置一個失敗標誌爲每個記錄。這可以通過一個條件分割進行過濾。請參閱[http://www.sqlis.com/sqlis/post/The-Script-Component-as-a-Transformation.aspx – MiguelH

+0

此問題太廣泛。請將其縮小爲您不知道如何去做的特定技術,並在發佈之前展示您試圖研究此問題的嘗試。 –

+0

我會採取的一般方法是通過派生列在您的數據流中創建布爾標誌。 RejectName和公式'len([FirstName])> 50'然後,您可以使用條件拆分將錯誤名稱路由到備用位置。泡沫,沖洗,重複。其中一些會更具挑戰性 - SSN沒有有效的格式?可能更好地通過.NET腳本任務計算而不是派生列等 – billinkc

回答

0

就像這些我有30條規則。 如果SSIS包將此數據加載到「暫存」表中而未進行驗證,然後執行迭代通過這些規則並據此採取行動的存儲過程,那麼維護這些規則將容易得多。