【发布时间】:2022-10-24 00:50:01
【问题描述】:
我的 Azure 数据工厂管道中有一个存储过程活动,它在 Azure Synapse 上调用以下存储过程:
CREATE PROCEDURE schema.procedure_name @portafoglio INT [...]
为了使用先前在管道中设置的变量(portafoglioElab)而配置的活动:
我的问题是如何通过存储过程活动中的 Azure 数据工厂管道将 Null 值作为输入参数传递给过程。 我尝试将变量 portafoglioElab 设置为 null、“null”、None、@coalesce(null),但我没有找到对应于 sql NULL 的正确值。
确实我收到了这个错误:
无法创建 Sql 源。请仔细检查连接字符串,存储过程设置为正确格式。错误:属性“Value”的值对于存储过程参数“portafoglio”无效。
可以请人帮助我吗? 提前致谢
【问题讨论】:
-
“存储过程允许 sql Null 值”你这是什么意思?存储过程参数不能定义为
NOT NULL,除非您使用本机编译的过程。因此(通常)全部存储过程参数可以允许,因为它们无法配置不去。你实际上表示程序的参数默认值是NULL?这不一样允许值NULL。还是您实际上使用的是本机编译的过程? -
您可以在尝试将
NULL添加为参数值的地方添加管道的屏幕截图吗? -
@Larnu,我的错,我在我的问题中添加了一些信息。问题是当我尝试通过 Azure 数据工厂管道中的变量将空值作为输入参数传递给存储过程时收到错误
-
如果参数有默认
NULL的值,如果你希望它是NULL,为什么不直接省略它? -
@Larnu 因为是存储过程的输入参数,所以可以为 Null,也可以在 Pipeline 执行过程中设置。如果您不通过它,您将收到此错误:Sql 错误号:201。错误消息:过程或函数“NAME_OF_PROCEDURE”需要参数“@portafoglio”,但未提供该参数。
标签: sql-server azure stored-procedures azure-data-factory azure-data-factory-2