开发者社区> 问答> 正文

如何在DTS数据转换任务中使用存储过程?

我有一个带有数据转换任务(数据泵)的DTS软件包。我想使用带有参数的存储过程的结果作为数据源,但是DTS不会预览结果集,也无法在数据转换任务中定义列。

有没有人得到这个工作?

警告:存储过程使用两个临时表(当然将其清理)

展开
收起
心有灵_夕 2019-12-28 23:26:11 1165 0
1 条回答
写回答
取消 提交回答
  • 为存储过程参数输入一些有效值,以便它运行并返回一些数据(甚至没有数据,您只需要这些列)。然后您应该能够进行映射等。然后进行断开连接的编辑并更改为实际参数值(我假设您是从全局变量中获取它们)。

    DECLARE @param1 DataType1  
    DECLARE @param2 DataType2
    SET @param1 = global variable  
    SET @param2 = global variable (I forget exact syntax)  
    
    --EXEC procedure @param1, @param2  
    EXEC dbo.proc value1, value2
    
    

    基本上,您可以像这样运行它,以便该过程返回结果。进行映射,然后在断开连接的编辑中注释掉第二个EXEC注释,并取消注释第一个注释EXEC,它应该可以工作。

    基本上,您只需要使过程运行并吐出结果即可。即使您没有返回任何行,它仍将正确映射列。我无权访问我们的生产系统(甚至数据库)来创建dts包。因此,我在虚拟数据库中创建了它们,并将存储过程替换为返回生产应用程序将运行的相同列但没有数据行的存储过程。然后,完成映射后,我将其与实际过程一起移至生产盒中,并且可以正常工作。如果您通过脚本跟踪数据库,这将非常有用。您可以只运行脚本来构建一个空的Shell过程,完成后再运行脚本以返回真实过程。

    2019-12-28 23:26:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTS助力企业快速复制阿里巴巴异地多活架构 立即下载
DTS控制台一本通 立即下载
大批量处理excel文件到ODPS中方案 立即下载