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

如何从Azure SQL存储过程获取日期字符串并赋值给ADF管道变量

Azure Data Factory 调用Azure SQL存储过程获取输出参数完整实现方案

前置:存储过程修正

你现有存储过程存在变量名笔误,修正后确保可正常返回包含startDate、endDate字段的单行结果集即可,参考代码:

CREATE PROCEDURE dbo.SP_DEDUCE_START_DATE_END_DATE
    @inputDateTimeString NVARCHAR(MAX) NULL,
    @startDate NVARCHAR(MAX) NULL OUT,
    @endDate NVARCHAR(MAX) NULL OUT
AS
BEGIN
    -- 此处为你的业务逻辑,用于计算@startDate和@endDate的取值
    -- 示例逻辑仅作演示,可替换为你的实际计算逻辑
    SET @startDate = DATEADD(DAY,-7,CAST(@inputDateTimeString AS DATETIME))
    SET @endDate = CAST(@inputDateTimeString AS DATETIME)

    -- 返回单行结果集供ADF Lookup活动读取
    SELECT 
        @inputDateTimeString AS inputDateTime, 
        @startDate AS startDate, 
        @endDate AS endDate

    RETURN;
END
GO

步骤1:定义ADF管道变量

进入目标ADF管道的「变量」配置页,新增两个字符串类型变量:

  • START_DATE:默认值留空
  • END_DATE:默认值留空

步骤2:配置Lookup活动读取存储过程返回值

Lookup活动是ADF中获取存储过程返回结果的标准方案,配置方式如下:

  • 关联你对应的Azure SQL数据库链接服务
  • 查询类型选择「存储过程」,选中dbo.SP_DEDUCE_START_DATE_END_DATE
  • 在参数区域填入输入参数@inputDateTimeString的取值,可根据业务需求填写静态值,或通过动态表达式引用管道参数、其他变量取值
  • 勾选Lookup活动配置页的「仅返回第一行」选项

步骤3:给管道变量赋值

在Lookup活动的成功依赖节点后,新增两个「设置变量」活动:

  • 第一个设置变量活动选择变量START_DATE,值的动态表达式为:@activity('<替换为你的Lookup活动名称>').output.firstRow.startDate
  • 第二个设置变量活动选择变量END_DATE,值的动态表达式为:@activity('<替换为你的Lookup活动名称>').output.firstRow.endDate

步骤4:将变量传入下游数据流

  1. 打开目标数据流,在数据流的参数配置页新增两个字符串类型参数,例如命名为INPUT_START_DATE、INPUT_END_DATE
  2. 回到管道的数据流活动配置页,找到参数配置区域,将两个数据流参数分别绑定为管道变量:
  • INPUT_START_DATE:@variables('START_DATE')
  • INPUT_END_DATE:@variables('END_DATE')

注意事项

  • 存储过程中不要输出多余的SELECT结果集,确保仅返回包含startDate、endDate字段的单行结果,避免Lookup取值错误
  • 如果有特殊日期格式要求,建议在存储过程中完成格式化后再返回,减少ADF侧的格式转换处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 14:00:02