我有一个存储过程(sp_selectClient),它有一个游标,在每次迭代中执行一些插入操作。在sp的最后一条语句中,我从一个表中选择了结果。
现在我正在创建一个ssis包,我在这方面是新的。我找到了最简单的方法:在Control中添加数据流任务,然后在数据流中添加一个source(OLEDB),在其中设置SQL 'EXEC sp_selectClient'。存储过程不接受任何参数。然后我把它映射到destination(flat file)中。我的疑问是,我也可以用Execute SQL Task来完成这个任务。如果是的话,那么这样做的好处和缺点是什么。
发布于 2017-02-27 09:47:49
发布于 2017-02-27 21:11:20
如果您的存储过程创建了一个结果集,那么您可以使用执行SQL并将结果集存储在Object类型的变量中,然后循环遍历Script Task中的行。
这些是有用的链接,可以帮助您将ResultSets存储在变量中,并在Script Task中循环其行。
如果存储过程不产生任何ResultSets (Select ),最好使用执行SQL
OLE DB Command为每一行运行insert、update或delete语句,而Execute SQL Task在此实例中执行批量插入。这意味着每一行通过您的包时都会有一个insert语句在到达OLE DB Command时运行。
参考资料:
https://stackoverflow.com/questions/42479858
复制相似问题