我有一个带有数据转换任务(数据泵)的DTS软件包。我想使用带有参数的存储过程的结果作为数据源,但是DTS不会预览结果集,也无法在数据转换任务中定义列。
有没有人得到这个工作?
警告:存储过程使用两个临时表(当然将其清理)
为存储过程参数输入一些有效值,以便它运行并返回一些数据(甚至没有数据,您只需要这些列)。然后您应该能够进行映射等。然后进行断开连接的编辑并更改为实际参数值(我假设您是从全局变量中获取它们)。
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过程,完成后再运行脚本以返回真实过程。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。