从存储过程中存储的数据集 - 执行SQL任务



我有此存储过程:

Dbo.SprocName (@Id UNIQUEIDENTIFIER, 
               @ResponseCode INT OUTPUT,
               @ResponseDescription VARCHAR(500) OUTPUT)

,它返回一个称为Resultnvarchar(MAX)的数据集(总是一行(。

我尝试了OLE和ADO连接以及结果集。我已经尝试创建一个表变量并将其存储在此处。

什么都没有用。

我可以在数据库中看到它正在成功运行,然后在返回结果数据集时会失败。

我已经进行了一些调试,可以确保结果字符串按原样返回。问题是我不知道如何在SSIS上处理此操作。

我遇到的错误是:

输入字符串不是正确的格式

我感谢任何想法。

谢谢。

edit :我尝试再次使用表变量,并且可以使用。我想我第一次做得不好。对于那个很抱歉。谢谢!

问题的一个潜在原因可能是SSIS和SQL Server之间的数据类型的不匹配。

SSIS GUID数据类型与SQL Server uniqueidentifier不匹配-SSIS GUID具有卷曲括号(例如{00000000-0000-0000-0000-000000000000}(,而SQL值不具有。SQL无法将值识别为唯一标识符,也无法转换。

要传递GUID,您将需要在SSIS或SQL中删除那些卷发括号。我用它用它将其发送为varchar,然后剥离卷曲括号,例如

DECLARE @GUID VARCHAR(40) = '{00000000-0000-0000-0000-000000000000}'
DECLARE @CnvtGUID UNIQUEIDENTIFIER = REPLACE(REPLACE(@GUID, '}', ''), '{', '')
SELECT @GUID, @CnvtGUID

最新更新