在SSMS中,我已经编写了我的for xml路径查询,它很漂亮。
我把它放在控制流中的“执行SQL任务”中,将结果集设置为XML。
现在我如何将结果转换为实际的xml文件,我可以将其转换为FTP并传送给第三方?
这应该很容易!我会把XML放到变量中,但我们正在查看一个巨大的文件,可能是100mb +
我是否需要使用脚本任务? (如果还有其他选择,我想避免这种情况。)
答案 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格式正确,这几乎就是一切。