您的位置:首頁技術文章
文章詳情頁

SQL Server 2000的數據轉換服務(下)

瀏覽:68日期:2023-10-28 16:15:44
Microsoft SQL Server 2000的數據轉換服務(下) 數據泵:轉換數據 DTS 數據泵是一個 DTS對象,它驅動數據的導入、導出和轉換操作。 在執行數據轉換、數據驅動查詢和并行數據泵任務期間將使用數據泵。執 行這些任務的過程是:在源和目標連接上創建行集合,然后創建數據泵實 例在源和目標間移動這些行。在復制每一行時,將進行轉換操作。 下圖中,在第二個步驟中,轉換數據任務在 Access DB任務和 SQL Production DB任務之間進行。轉換數據任務用連接間的灰色箭頭表示。  圖 7. 示例:轉換數據任務 要定義從源連接收集的數據,可以生成一個轉換任務的查詢。DTS 支 持參數化查詢,參數化查詢允許在執行查詢時定義查詢值。 可以將查詢鍵入任務的“屬性”對話框,也可以使用數據轉換服務查 詢設計器,它是一個用圖形化方式生成 DTS任務查詢的工具。下圖中,使 用查詢設計器來生成一個查詢,該查詢聯接 pubs 數據庫中的三個表。 圖 8. 數據轉換服務查詢設計器界面 在轉換任務中,還可以定義要對數據進行的更改。下表說明 DTS提供 的內置轉換。 轉換 說明 復制列 用于在不應用任何轉換的情況下將數據直接從源列復制到目標列。 ActiveX 腳本 用于生成自定義轉換。請注意,因為轉換將逐行進行,ActiveX 腳本可能影響 DTS 軟件包的執行速度。 DateTime 字符串 用于將源列中的日期或時間轉換為目標列中的另一種格式。;;小寫字符串 用于將源列轉換為小寫字符形式,如需要,將其轉換為目標數據類型。 大寫字符串 用于將源列轉換為全大寫字符形式,如需要,將其轉換為目標數據類型。 中間字符串 用于從源列抽取子字符串,對其進行轉換后將結果復制到目標列。 修剪字符串 用于刪除源列中字符串的前導空格、尾隨空格和嵌入空格,然后將結果復制到目標列。 讀取文件 用于打開文件內容(文件名稱在源列中指定),然后將內容復制到目標列。 寫入文件 用于將源列(數據列)的內容復制到一個文件中,該文件的路徑由第二個源列(文件名列)指定。 還可以用編程方式創建自己的自定義轉換。生成自定義轉換最快速的 方式是使用活動模板庫(ATL )自定義轉換模板,SQL Server 2000 DTS 樣本程序中包括該模板。 數據泵錯誤記錄 SQL Server 2000 中提供了一種記錄轉換錯誤的新方法??梢远x三 種異常情況記錄文件來記錄軟件包執行期間的情況:錯誤文本文件、源錯 誤行文件和目標錯誤行文件。 ●一般錯誤信息將寫入錯誤文本文件中。 ●如果轉換失敗,源行出現錯誤,該行將寫入源錯誤行文件。 ●如果插入失敗,目標行出現錯誤,該行將寫入目標錯誤行文件。 在轉換數據的任務中將定義異常情況日志文件。每個轉換任務都有自 己的日志文件。 數據泵階段 默認情況下,數據泵有一個階段,即行轉換。該階段是在未選擇階段 的情況下,在轉換數據任務、數據驅動查詢任務和并行數據泵任務中映射 列一級的轉換時配置的。 多個數據泵階段是 SQL Server 2000中新增的。通過在 SQL Server 企業管理器中選擇多階段數據泵選項,在數據泵操作過程中的不同階段都 可以訪問數據泵并添加功能。 將數據行從源復制到目標時,數據泵將按照下圖中所顯示的基本進程 進行操作。  圖 9. 數據泵進程 數據泵處理完最后一行數據后,任務結束,數據泵操作終止。 如果高級用戶要向軟件包添加功能,以便軟件包能支持任何數據泵階 段,可以執行以下操作: ●為每個要自定義的數據泵階段編寫一個 ActiveX 腳本階段函數。如果  使用 ActiveX 腳本函數來自定義數據泵階段,不需要該軟件包以外的  其它任何代碼。 ●使用 Microsoft Visual C++? 創建 COM 對象來自定義所選的數據泵階  段。在該軟件包之外開發此程序,在執行轉換過程中每個所選的階段時  將調用該程序。訪問數據泵階段的 ActiveX 腳本方法中每個所選階段  都使用不同的函數和輸入點;而這種方法則不同,它在數據泵任務執行  期間提供一個單一輸入點,該輸入點將被多個數據泵階段調用。 保存 DTS 軟件包的選項 以下選項可用于保存 DTS 軟件包: ●Microsoft SQL Server 如果要將軟件包存儲到網絡中 SQL Server 的任意實例上,該選項將 DTS 軟件包保存到 Microsoft SQL Server ,保留一個便于使用的這些軟 件包的清單,并在軟件包開發進程中添加和刪除軟件包版本。 ●SQL Server 2000 元數據服務 如果準備跟蹤軟件包版本、元數據和數據系列信息,該選項將 DTS軟 件包保存到元數據服務。 ●結構化存儲文件 如希望在網絡間復制、移動和發送軟件包而不必將其存儲在Microsoft SQL Server數據庫中,該選項將 DTS軟件包保存到結構化存儲文件。 ●Microsoft Visual Basic 如果要將 DTS軟件包合并到 Visual Basic 程序中或將其用作 DTS應 用程序開發的原型,該選項將通過 DTS設計器或 DTS導入/ 導出向導所創 建的 DTS軟件包保存到 Microsoft Visual Basic 文件。 DTS 作為應用程序開發平臺 DTS 設計器為數據移動任務提供了多種解決方案。因為提供通過編程 方式訪問 DTS對象模型的功能,DTS 擴展了可用的解決方案的數目。使用 Microsoft Visual Basic、Microsoft Visual C++或任何其它支持 COM的 應用程序開發系統,都可以使用圖形化工具所不支持的功能開發出適合于 您的環境的自定義 DTS解決方案。 DTS 為開發人員提供多種不同方式的支持: ●生成軟件包 無需使用 DTS設計器或 DTS導入/ 導出向導,您就可以開發極為復雜 的軟件包,并可訪問對象模型中的全套功能。 ●擴展軟件包 通過構建自定義任務和轉換,可以添加一些適用于您的業務并可在 DTS 內重復使用的新功能。 ●執行程序包 并非一定要使用所提供的工具來執行 DTS軟件包,可以用編程方式執 行DTS軟件包并通過 COM事件顯示進度,并允許構建嵌入的或自定義的DTS 執行環境。 樣本DTS程序有助于了解DTS編程的入門知識。該樣本可與SQL Server 2000一起安裝。 如果開發 DTS應用程序,可以重新分發 DTS文件。有關詳細信息,請 參閱 SQL Server 2000光盤上的 Redist.txt。   摘自http://www.microsoft.com/china/msdn/?MSCOMTB=ICP_MSDN
標簽: Sql Server 數據庫
国产综合久久一区二区三区