使用SSIS从存储过程导出XML文件

时间:2012-10-18 17:25:52

标签: ssis

有一个存储过程,它以XML作为输出,它在SSMS中显示xml输出。如何使用SSIS从此存储过程生成XML文件到特定位置。我找到了一个链接,建议使用VB和脚本任务来执行此操作。可以在不使用脚本任务的情况下完成此操作吗?我也尝试了以下链接中的步骤:

How to export from SQL Server to XML

程序包在执行SQL任务本身失败并出现错误[执行SQL任务]错误:执行查询“EXEC USP_PMAXML”失败,并显示以下错误:“找不到存储过程'EXEC USP_PMAXML'。”。可能的失败原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:3)

A)您收到的错误表示找不到存储过程。您需要验证

  1. 存储过程存在
  2. 帐户访问存储过程具有执行权限
  3. 存储过程存在于帐户的默认架构中,可能是dbo。 {我已经看到了在用户模式[domain\user].USP_PMAXML}
  4. 下创建过程的问题
  5. 您正在使用的连接管理器指向正确的服务器和目录(数据库)。
  6. B)如果您想使用开箱即用的方法并避免编写脚本,请删除Execute SQL Task。下面我展示了一个用于复制目的的执行SQL任务。它创建了一个生成XML的存储过程。

    Control flow

    1. 添加数据流任务。
    2. 在数据流任务中,添加OLE DB源。
    3. 配置OLE DB源以使用连接管理器,并且我们验证的存储过程在步骤1中是正确的
    4. 假设应该只生成一个文件,从OLE DB Source中添加一个派生列转换,并在其中定义输出文件名,我假设它是C:\ssisdata\so_xmlExtract.xml。我将进一步假设您将列重命名为FileName。您将使用的确切值是“C:\ ssisdata \ so_xmlExtract.xml”注意斜杠加倍,因为我们必须转义\字符以及用双引号括起来。

    5. 此时,您已准备好使用“导出列转换”。示例Export Varbinary(max) column with ssisUsing SSIS to extract a XML representation of table data to a file

    6. dataflow