我在SSIS(僅FTR)是相當新的。SSIS包XML源
我必須使用SSIS包將XML數據從DB2數據庫導入到SQL Server中。 XML在CLOB/BLOB中(取決於表),據我所知,這不是由Microsoft DB2驅動程序支持的,所以我創建了一個Java橋接器,它從客戶端獲取ID並返回XML。橋由Visual Basic客戶端訪問(預編譯,並且)作爲SSIS中的腳本任務執行。性能並不是當前的重點(它是7XMLs/sec)。從網橋返回的XML存儲在變量中,並且由於網橋接受一個ID /請求,因此請求情況位於Foreach循環容器中,該容器循環處理從SQL任務接收到的ID。
在foreach循環中,有存儲XML的Visual Basic客戶端,從XML導入數據並存儲在FlatFile目標中的數據流,以及另一個Visual Basic任務,該任務在MsgBox中顯示XML )。
數據流也有三個元素:XML源,派生列,平面文件目標。 XML Source從具有修正的XML Schema(XSD)的變量中獲取XML數據,併發送解析的數據。 Derived列將ID作爲新列添加到XML數據中,FlatFile Target應將其保存(如前所述,僅用於測試紫袍)。
當我啓動這個包時,一切都很順利。在Java橋中,我看到通信和XML發送回來,數據流也沒有錯誤地返回,但是它會引發一些警告,並且沒有行寫入文件。第二個VB腳本正確顯示XML。
該警告與0x80047076關於來自XML文件的未處理輸出(因爲我只是意圖存儲它的一部分)。
任何想法,爲什麼沒有任何數據寫入文件輸出?
SQL服務器2005 SP1 的Java SE 1.6(U26我認爲) DB2 V 9
警告如下所示:
警告:0x80047076在導入的XML,DTS.Pipeline:輸出「sum」(36)和組件「XML Source」(1)的輸出列「text」(965)隨後不會在數據流任務中使用。刪除這個未使用的輸出列可以提高數據流任務的性能。
我試圖將一個XML文件'hard coded'添加到變量中。我還使用XML Spy檢查了XML與其XSD的對比。 XML是有效的,但沒有數據寫入平面文件。
當我嘗試調試並將該變量添加到手錶中時,我得到的XML稍有修改: 「-s被反斜槓,並且在標準XML標題之後,新行字符也被打印爲標準換行符:\ N實施例:?
< XML版本= \ 「1.0 \」 編碼= \ 「UTF-8 \」 > \ n <擴展屬性> <客戶值>甲< /客戶爲值> ...
但是,當在MsgBox中顯示XML時,XML正常打印(\ n爲換行符,\「),所以我的猜測是,這只是一個未處理的,直接從C/C++/C#字符串表示。
你能寫一個整體警告字句?我知道他們可能非常冗長,但可能會有一些線索。 – cfrag