2013-08-21 63 views
1

這裏我是開發SSIS包的新手使用SSIS包存儲過程結果到文本文件

我需要您的支持來提出解決方案。

我有10個不同的存儲過程集,我必須導出到文本文件中,所有10個過程將返回相同的一組列(僅調用參數不同)。

我沒有得到解決方案該怎麼做?

請幫我理解如何將數據從存儲過程輸出導出到製表符分隔的文本文件?

請讓我知道如何構建ssis包?

謝謝

+1

閱讀此artice幷包括評論 - http://consultingblogs.emc.com/jamiethomson/archive/2006/12/20/SSIS_3A00_-Using-stored-procedures-inside-an-OLE-DB-Source-component。 ASPX。 – Maximus

+1

如果您第一步對SSIS不熟悉,至少需要完成以下教程:http://technet.microsoft.com/zh-cn/library/ms169917.aspx – Stagg

回答

1

如果不在每一步放置圖片,這是很難做到的。我似乎無法放入照片,因此我會盡可能詳細地描述。

您必須首先建立一個到要運行存儲過程的數據庫的連接。這意味着要爲「新建OLE DB連接」創建一個連接管理器。您將需要vaild登錄到數據庫信息來創建此連接。

在控制區域中,我將設置一個「執行SQL任務」。我會將結果集設置爲完整結果集,並將連接設置爲您在上一步中指定的連接。要從SQL任務調用存儲過程,請使用類似於「exec?= dbo.usp_check_load_table_all @JobCode =?,@TransId =?,@Status =?,@TurnStatusOff =?」的內容。首先 ?是存儲過程的返回碼。其他的是運行存儲過程的參數。現在你正在運行10個不同的存儲過程,我只知道如何運行一個,但是你可以創建10個包,一個運行每個包,並在完成時連接文件。在參數映射中,您可以設置要運行的變量的值。確保爲返回代碼創建一個長時間的USER :: ReturnValue類型。結果集需要一個條目USER ::結果的類型對象。

您現在將一個ADO枚舉器的foreach循環放入USER :: Results in作爲變量。這允許您一次讀取每行中的一行。您必須爲變量映射創建用戶變量才能進入。

然後,我會做一個數據流任務,並把一個派生列任務,並設置每個字段,你要寫入文件從USER :: fieids你爲foreach循環創建。

我會在連接管理器中創建一個平面文件連接作爲分隔文件,製表符分隔。您將需要一個看起來像您想要的輸出的文件,因爲您需要映射文件中的每個字段。

將平面文件目標添加到衍生列任務下並將其映射到您剛剛創建的平面文件。現在將每個字段映射到輸出。

我希望這是有幫助的,因爲我自己曾經是新的SSIS。