You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory存储过程活动未更新表数据排查请求

Azure Data Factory存储过程活动未更新表数据的排查与修复

核心原因

存储过程对输入参数的解析逻辑与ADF实际传入的参数结构完全不匹配:

  • ADF存储过程活动中,p_request_string参数的实际值就是你指定的JSON数组字符串:"[[{\"proclaim_id\":1,...}]]"
  • 但存储过程里错误地尝试从$.source.storedProcedureParameters.p_request_string路径解析参数,这个路径在传入的参数值中根本不存在,导致@var1和@var2均为NULL,后续临时表无数据,最终更新操作无行匹配,自然没有数据变更。

验证方式

在SSMS中严格模拟ADF的参数传入方式执行测试:

EXEC [dbo].[UpdateProclaimIDs_test_adf2] 
    @p_request_string = '[[{"proclaim_id":1,"test_patient_id":1},{"proclaim_id":2,"test_patient_id":2},{"proclaim_id":3,"test_patient_id":3},{"proclaim_id":4,"test_patient_id":4},{"proclaim_id":5,"test_patient_id":1},{"proclaim_id":6,"test_patient_id":2},{"proclaim_id":7,"test_patient_id":3},{"proclaim_id":8,"test_patient_id":4}]]'

此时会发现存储过程执行后无数据更新,和ADF中的现象一致——这说明你之前在SSMS测试时,可能误传入了包含source层级的完整JSON结构,而非和ADF完全相同的参数值。

修复方案

修改存储过程,直接使用传入的@p_request_string参数进行JSON解析,移除多余的层级解析逻辑:

ALTER PROCEDURE [dbo].[UpdateProclaimIDs_test_adf2]                                                                                                  
       @p_request_string  NVARCHAR(MAX)                                                                                                 
AS                                                                                                  
 BEGIN    
   -- 直接使用传入的参数解析JSON数组
   SELECT value
   INTO #temp2
   FROM OPENJSON(@p_request_string)

   CREATE TABLE #ProclaimIDs    
   (testPatientID INT, proclaim_id INT) 

   INSERT INTO #ProclaimIDs(testPatientID, proclaim_id)
   SELECT test_patient_id, proclaim_id
   FROM #temp2 
   CROSS APPLY OPENJSON(value) WITH 
   (proclaim_id INT '$.proclaim_id',
    test_patient_id INT '$.test_patient_id') 
    
   UPDATE pta                             
   SET proclaim_id = pis.proclaim_id                  
   FROM proclaim_test_adf2 pta    
   JOIN #ProclaimIDs pis ON pis.testPatientID = pta.test_id  
END

额外建议

  • 执行存储过程后,可通过SELECT @@ROWCOUNT查看受影响的行数,快速验证更新是否生效;
  • 若需要在ADF中排查执行细节,可开启活动的日志记录,查看实际传入的参数和执行返回结果。

内容的提问来源于stack exchange,提问作者user2736893

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 03:08:12