1

我是开发 SSIS 包的新手

我需要您的支持才能提出解决方案。

我有 10 组不同的存储过程,我必须将它们导出到文本文件中,所有 10 个过程都将返回相同的列集(只有调用参数不同)。

我没有得到解决方案怎么办?

您能否帮助我了解如何将数据从存储过程输出导出到制表符分隔的文本文件?

请让我知道如何构建 ssis 包?

谢谢

4

1 回答 1

1

如果没有在每一步上放图片,这很难做到。我似乎无法放入图片,所以我将尝试尽可能详细地描述。

您必须首先建立与要从中运行存储过程的数据库的连接。这意味着为“新建 OLE DB 连接”创建一个连接管理器。您将需要有效登录到数据库信息才能创建此连接。

在控制区域中,我将设置一个“执行 SQL 任务”。我会将结果集设置为完整结果集,并将连接设置为您在上一步中命名的连接。要从 SQL 任务调用存储过程,请使用类似“exec ? = dbo.usp_check_load_table_all @JobCode = ?, @TransId = ?, @Status = ?, @TurnStatusOff = ?” 首先 ?是存储过程的返回码。其他是运行存储过程的参数。现在您正在运行 10 个不同的存储过程,而我只知道如何运行一个,但您可以创建 10 个包,一个用于运行每个包,并在完成后连接文件。在参数映射中,您设置要运行的变量的值。确保为返回码创建一个 USER::ReturnValue 类型 long 。结果集需要一个 USER::Results 类型的条目。

您现在为 ADO 枚举器放入一个 foreach 循环,将 USER::Results 作为变量放入。这使您可以一次读取每一行。您必须为要进入的变量映射创建用户变量。

然后,我将执行数据流任务并放置派生列任务,并设置您要从您为 foreach 循环创建的 USER:: 字段写入文件的每个字段。

我会在连接管理器中创建一个平面文件连接作为分隔文件,制表符分隔。您将需要一个看起来像您想要的输出的文件,因为您需要映射文件中的每个字段。

在 deriried 列任务下添加一个平面文件目标,并将其映射到您刚刚创建的平面文件。现在将每个字段映射到输出。

我希望这会有所帮助,因为我自己曾经是新的 SSIS。

于 2013-08-26T21:40:03.103 回答