繁体   English   中英

无法将 json 数组导入 azure 数据工厂中的 sql 表

[英]Unable to import json array to sql table in azure data factory

我有一个与此类似的 JSON 阵列。

 {
"first":
    {
    "heading":{
    "row":[
    {
    "@captain" :"dhoni",
    "@runs":"50"
    },
    {
    "@captain" :"Kohli",
    "@runs":"150"
    }
    ]
    }
    }
    }

但我不确定如何添加 sql 脚本来将此 JSON 导入我的 sql 表。 任何人都可以帮忙吗

您可以在for each activityscript活动的帮助下插入从 API 调用返回的 json 中提取的行。

  • 我将给定的样本 json 作为参数(对象类型)。 首先为每个活动创建一个。 每个活动的项目价值如下:
@pipeline().parameters.my_json['first']['heading']['row']
  • 当我们这样做时,对于每次迭代,当前项目将是从 JSON 中提取的需要插入到 sql 表中的行。

在此处输入图像描述

  • 现在在每个内部,创建一个脚本活动。 在这里,编写一个查询以插入到目标 SQL 表中。 您可以使用以下内容作为您的查询
insert into dbo.player(captain,runs) values ('@{item()['@captain']}','@{item()['@runs']}')

在此处输入图像描述

使用存储过程的另一种方法:

  • 在您的数据库中创建以下存储过程。
create  or  alter  procedure insert_player @json varchar(max)
as
begin
insert  into player SELECT  *  FROM OPENJSON(@json,'$.first.heading.row') with ([@captain] varchar(30),[@runs] varchar(30))
end
  • 在数据工厂管道中创建单个存储过程活动。 Select 所需的链接服务,上面创建的存储过程,点击存储过程参数下的导入
@string(pipeline().parameters.my_json)
  • 注意:对我来说,它是管道参数,在您的情况下,它将是查找 output 生成上述给定示例 JSON。

在此处输入图像描述

  • 当我调试管道时,它成功运行并将值插入到相应的表中。

在此处输入图像描述

暂无
暂无

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

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