程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2000的數據轉換服務(下)

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

編輯:關於SqlServer
數據泵:轉換數據

  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 中提供了一種記錄轉換錯誤的新方法。可以定義三
種異常情況記錄文件來記錄軟件包執行期間的情況:錯誤文本文件、源錯
誤行文件和目標錯誤行文件。
●一般錯誤信息將寫入錯誤文本文件中。
●如果轉換失敗,源行出現錯誤,該行將寫入源錯誤行文件。
●如果插入失敗,目標行出現錯誤,該行將寫入目標錯誤行文件。

  在轉換數據的任務中將定義異常情況日志文件。每個轉換任務都有自
己的日志文件。

數據泵階段

  默認情況下,數據泵有一個階段,即行轉換。該階段是在未選擇階段
的情況下,在轉換數據任務、數據驅動查詢任務和並行數據泵任務中映射
列一級的轉換時配置的。

  多個數據泵階段是 SQL Server 2000中新增的。通過在 SQL Server
企業管理器中選擇多階段數據泵選項,在數據泵操作過程中的不同階段都
可以訪問數據泵並添加功能。

  將數據行從源復制到目標時,數據泵將按照下圖中所顯示的基本進程
進行操作。
   
            圖 9. 數據泵進程

  數據泵處理完最後一行數據後,任務結束,數據泵操作終止。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved