如何在Azure Data Factory DataFlow SQL Server源代码中运行存储过程

问题描述

使用Azure sql Server源时,我使用“查询”选项并指定要运行的存储过程。当我在Management Studio中粘贴相同的代码时,它可以工作,但是当使用Query选项从ADF源执行时,它在以下情况下出错。如何使用查询选项调用存储过程?

{"message":"at Source 'Source': com.microsoft.sqlserver.jdbc.sqlServerException: Incorrect Syntax near the keyword 'EXECUTE'.. Details:at Source 'Source': com.microsoft.sqlserver.jdbc.sqlServerException: Incorrect Syntax near the keyword 'EXECUTE'.","failureType":"UserError","target":"SyncData","errorCode":"DFExecutorUserError"}

这是我正在传递的查询,当从SSMS调用时有效:

EXECUTE [dbo].[sp_ReplicaGetChanges] @ReplicaVersion = 0,@FirstTimeFlag = 1,@SourceSchema = 'dbo',@SourceTable = 'Brand',@UpdateColumns = NULL

enter image description here

解决方法

数据流支持

UDF,但SP不支持

https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database#source-transformation

,

某些分析系统不喜欢execute和dbo。 尝试将execute更改为exec和/或删除dbo。从sp 例如。执行sp_ReplicaGetChanges