繁体   English   中英

在 SQL 查询中连接 Azure 数据工厂管道参数

[英]Concat Azure Data Factory Pipeline parameters in SQL Query

Azure 数据工厂管道正在获取存储在数据库表中的 SQL 查询。 例如。 询问:

Select * from employees where first_name = 'Sam' and last_name = 'mathew'

我需要以这样的方式更新查询,即fnamelname将成为 azure 数据工厂管道中的参数,例如pipeline().parameters.fnamepipeline().parameters.lname

如何修改查询以在 SQL 查询中使用这些管道参数?

注意:SQL 查询存储在数据库表中。 管道将在复制数据管道步骤中获取 SQL 查询

正如@Nandan所建议的,您必须通过在数据库中创建一个存储过程并在复制活动中传递管道参数来做到这一点。

请按照以下演示进行操作:

  • 在这里,我将查询中的选定数据复制到 blob 中的 csv 文件。 你可以复制到任何你想要的地方。

  • 这是我的示例SQL 表 在此处输入图像描述

  • 我正在使用fnamelname作为参数在数据库中创建存储过程,并在 sql 中使用concat()

create or alter procedure dbo.proc1 @fname nvarchar(32),@lname nvarchar(32)
as
begin
    select concat(firstname,' ',lastname) as employee_name from [dbo].[employees] where employees.firstname=@fname and 
    employees.lastname=@lname;
end

在此处输入图像描述

  • 使用默认值为fnamelname创建管道和参数,如下所示。

在此处输入图像描述

  • 现在创建一个复制活动并将SQL 表作为源并按照以下步骤操作。

在此处输入图像描述

  • 给你的接收器数据集,我的案例接收器是 blob 中的 csv 文件。
  • 现在,执行管道并给出fnamelname参数值。

在此处输入图像描述

  • 单击确定,您可以将选定的数据从数据库中的查询复制到您的接收器。

我的输出:

在此处输入图像描述

您可以像这样使用concat函数:

在复制活动中的查询中:

@concat('select * from employees where first_name= ''', pipeline().parameters.fname,''' and last_name =''',pipeline().parameters.lname,''' ')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM