我有此存储过程:
Dbo.SprocName (@Id UNIQUEIDENTIFIER,
@ResponseCode INT OUTPUT,
@ResponseDescription VARCHAR(500) OUTPUT)
,它返回一个称为Result
为nvarchar(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