sql-server Azure数据工厂-存储过程活动中的参数为空

suzh9iv8  于 2022-10-31  发布在  其他
关注(0)|答案(2)|浏览(164)

我的Azure数据工厂管道中有一个存储过程活动,它调用Azure Synapse上的以下存储过程:

CREATE PROCEDURE schema.procedure_name @portafoglio INT [...]

配置活动以使用先前在管道中设置的变量(portafoglioElab):

我的问题是如何通过存储过程活动中的Azure数据工厂管道将Null值作为输入参数传递给过程。我尝试了将变量portafoglioElab设置为null、“null”、None、@coalesce(null),但我找不到与sql NULL对应的正确值。
这是我设置变量的管道步骤:

它是整个管道的IF条件内的一个步骤:

事实上我得到这个错误:
无法创建SQL源。请仔细检查连接字符串、存储过程是否设置了正确的格式。错误:属性'Value'的值对存储程序参数'portafoglio'无效。
能请人帮帮我吗?先谢谢了

vxf3dgd4

vxf3dgd41#

我已经找到了一个解决方案与动态内容。
不仅可以将动态内容放入参数的值中,甚至参数本身也可以是动态的。

我用这个值经过多次测试后解出:

@json(concat('{"portafoglio": {"value": ', variables('portafoglioElab'), '}}'))

这样我就可以处理空值和非空值了。注意文档是错误的,内容必须是字典,而不是字符串。

ccrfmcuu

ccrfmcuu2#

传递-1或其他一些标记,并在进程中处理它

相关问题