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