如何从存储过程中获取日期字符串输出?

问题描述 投票:0回答:1

我在 Azure SQL DB 中有一个存储过程,它根据输入日期字符串返回 2 个输出参数:

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
    -- exact logic omitted as to demonstrate the 2 outputs date string only
    SELECT 
        @inputDateTime AS inputDateTime, 
        @startDate AS startDate, @endDate AS endDate

    RETURN;
END
GO

我正在寻找:完整的端到端解决方案:

  1. 从存储过程中获取2个输出日期字符串
    startDate
    endDate
  2. 将 2 个日期字符串存储到 2 个管道变量
    START_DATE
    END_DATE
    (因为我有其他处理逻辑来影响管道变量)
  3. 将 2 个管道变量作为参数提供给下游数据流

我尝试过/看过的:

  1. 这个SO答案中的链接 - 它很接近,但不是完整的答案,因为语法似乎不完整
  2. 链接提到存储过程活动不能用于访问 SP 输出;将需要查找活动
sql-server stored-procedures azure-data-factory
1个回答
1
投票
我想分享我最终的端到端工作解决方案。

这是我的最终管道的简化概述:

enter image description here 触发 SP 的查找活动;然后设置 2 个变量,然后馈送到下游数据流。

提供给 SP 的参数语法: enter image description here 您必须检查 2 个输出的 Treat as null

 选项。然后将日期字符串提供给 SP。

读取 SP 输出并设置变量(此处仅使用 START_DATE 作为示例,因为 END_DATE 相同): enter image description here

放入

@activity('SP_DEDUCE_START_DATE_END_DATE').output.firstRow.startdate


将 2 个变量提供给下游数据流: enter image description here

@variables('START_DATE')

放入管道表达式中。

© www.soinside.com 2019 - 2024. All rights reserved.