2012-02-16 111 views
1

在SSIS(sql server 2008)中我有一个Sql任务正在调用我的存储过程。 存储过程获取1个输入参数并返回2个输出参数。 这是我的SP的原型:SSIS返回几个输出xml参数

声明spGetPersonDetails(PERSONID INT,@orders XML输出,@names XML输出) 作为.....

的问题是,在IIS我的SQL任务,我宣布了这3个参数。一个输入和两个输出,当它运行时,只有一个输出参数从sp获得一个值。

有什么想法?

谢谢。

回答

1

我试着重新创建一个简单的示例存储过程。

存储过程

CREATE PROCEDURE [dbo].[TestProcedure] 
    -- Add the parameters for the stored procedure here 
    @Input INT, 
    @Output1 INT OUTPUT, 
    @Output2 INT OUTPUT 
AS 
BEGIN 
    SET @Output1 = @Input + 1 
    SET @Output2 = @Input + 2 
END 

然后在SQL任务(这是我使用的OLE DB源)我有sql语句设置为

EXEC dbo.TestProcedure @Input = ?, @Output1 = ? OUTPUT, @Output2 = ? OUTPUT 

最后一切都需要一个有效参数映射确保准确设置“方向”列。

我得到了其中的大部分信息来自两个网站:

http://blogs.msdn.com/b/mattm/archive/2006/11/08/stored-procedures-with-output-parameters.aspx

http://www.julian-kuiters.id.au/article.php/ssis-execute-sql-task-output-parameters

我希望这可以帮助你,如果你有你对这个SQL任务设置的特定值的详细信息我会很乐意更新我的答案。

+0

完美!谢谢。 – 2012-02-17 08:55:54