在SSMS中,我得到了我寫的xml路徑查詢,它很漂亮。FOR XML PATH查詢結果到SSIS文件
我把它放在控制流中的「執行SQL任務」中,將結果集設置爲XML。
現在如何將結果導入到一個實際的xml文件中,我可以將它轉向FTP並轉發給第三方?
這應該是如此簡單!我會把XML放入一個變量中,但我們正在尋找一個巨大的文件,可能是100MB +
我是否需要使用腳本任務? (如果還有其他選擇,我想避免這種情況。)
在SSMS中,我得到了我寫的xml路徑查詢,它很漂亮。FOR XML PATH查詢結果到SSIS文件
我把它放在控制流中的「執行SQL任務」中,將結果集設置爲XML。
現在如何將結果導入到一個實際的xml文件中,我可以將它轉向FTP並轉發給第三方?
這應該是如此簡單!我會把XML放入一個變量中,但我們正在尋找一個巨大的文件,可能是100MB +
我是否需要使用腳本任務? (如果還有其他選擇,我想避免這種情況。)
您需要使用data flow task而不是執行SQL任務來加入源(SQL調用)和目標(平面文件連接) 。
我在搜索完全相同的問題(即從存儲過程中提取大量XML數據並使用SSIS寫出)。
我正在使用OLEDB,它工作但疼痛緩慢。當切換到SSIS中的ADO.NET適配器時,從SQL Server中檢索XML的速度提高了50倍。如果你有興趣,我會描述細節。
我不太理解與使用腳本任務,因爲你的整個腳本(VB.net)的猶豫看起來是這樣的:
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Data.SqlClient
Imports System.Text
Imports System.IO
Public Sub Main()
Using Out As StreamWriter = New StreamWriter(<--XML FILE LOCATION-->)
Out.Write(Dts.Variables("User::Xml").Value.ToString())
Out.Close()
End Using
Dts.TaskResult = Dts.Results.Success
End Sub
這幾乎是所有這隻要花費爲您的XML是格式良好的。
試過,首先,平面文件連接沒有XML的數據類型。 我試着通過數據轉換來運行它,並將該文件視爲DT_IMAGE ...我試圖將其更改爲DT_TEXT,DT_STR太小。 兩者都將不可識別的字符放在我的平面文件中。 你會使用什麼數據類型?我不認爲平面文件連接是用來處理XML輸出的。 – WhimSQL 2010-04-29 18:36:08
xml實際上是nvarchar(max):你應該能夠指定這個 – gbn 2010-04-29 18:57:58