如何在Azure Data Factory V2中将上一步的输出传递到下一个?

时间:2019-05-16 20:20:45

标签: azure azure-data-factory

我已经在Data Factory中建立了一系列活动,如下图所示。

enter image description here

我想知道如何从Step 1中的Step 2捕获并传递SQL Server输出(包括错误消息)。如屏幕快照所示,我目前正在使用@activity('PR_TEST_RAISE_ERROR').output,希望它捕获到ERROR: test error message之类的错误消息,但是当我检查日志表时,我们使用{{1} }是这样的:

enter image description here

万一有人想复制我面对的东西,@activity('PR_TEST_RAISE_ERROR').output中存储过程的代码如下:

Step 1

对于SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[PR_TEST_RAISE_ERROR] AS RAISERROR ('ERROR: test error message',16,1); GO ,当第1步成功完成时,我让它运行带有以下参数的存储过程:

Step 2

对于exec [dbo].[PR_TEST_LOG_ERROR_CATCHING] '[pr_test_sql_error_catching]', 'success' ,当第1步失败时,我让它运行如下相同的存储过程:

Step 2

exec [dbo].[PR_TEST_LOG_ERROR_CATCHING] '[pr_test_sql_error_catching]', 'failure' 的编码如下:

[dbo].[PR_TEST_LOG_ERROR_CATCHING]

和日志表(SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[PR_TEST_LOG_ERROR_CATCHING] ( @log_table_name AS NVARCHAR(100), @message AS NVARCHAR(MAX) ) AS DECLARE @cur_date DATETIME = getdate(); DECLARE @query NVARCHAR(MAX); SET @query = ( 'INSERT INTO [dbo].' + @log_table_name + '( [Message], [Logged_On] ) VALUES (''' + @message + ''',' + '''' + CONVERT(NVARCHAR, @cur_date) + '''' + ');' ); EXEC (@query) GO @log_table_name的创建如下:

[pr_test_sql_error_catching]

如果有人对整个Data Factory活动序列的源代码感到好奇,就像这样:

CREATE TABLE Persons (
    Message nvarchar(max),
    Logged_On datetime
);

预先感谢您对我如何在Azure Data Factory中将错误消息(或任何类型的输出)从上一步传递到下一步的回答/建议!

0 个答案:

没有答案