FOR XML PATH使用SSIS查询结果到文件

时间:2010-04-29 16:08:30

标签: sql xml ssis

在SSMS中,我已经编写了我的for xml路径查询,它很漂亮。

我把它放在控制流中的“执行SQL任务”中,将结果集设置为XML。

现在我如何将结果转换为实际的xml文件,我可以将其转换为FTP并传送给第三方?

这应该很容易!我会把XML放到变量中,但我们正在查看一个巨大的文件,可能是100mb +

我是否需要使用脚本任务? (如果还有其他选择,我想避免这种情况。)

3 个答案:

答案 0 :(得分:0)

您需要使用data flow task而不是执行SQL任务来加入源(SQL调用)和目标(平面文件连接)。

答案 1 :(得分:0)

我正在搜索完全相同的问题(即从存储过程中提取大量XML数据并使用SSIS写出)。

我正在使用OLEDB,它工作但速度很慢。在SSIS中切换到ADO.NET适配器时,从SQL Server进行XML检索的速度要快50倍。如果您有兴趣,我会详细说明。

答案 2 :(得分:0)

我不太明白使用脚本任务的犹豫,因为您的整个脚本(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格式正确,这几乎就是一切。