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

OData数据加载至SQL Server:批量插入及通用映射设置咨询

批量提取OData响应中value数组数据并插入SQL Server的解决方法

用Azure Data Factory/ Synapse Analytics的话

  • 先做数组扁平化:
    连好OData源之后,添加扁平化转换,把value设为要展开的数组列,这样数组里的每个对象都会被拆成单独的行。
  • 然后映射字段:
    扁平化完成后,Id、OwnerId、Description这些字段都会变成独立列,直接在SQL Server接收器中配置字段映射,就能批量插入所有记录。

用SSIS的话

  • 先处理OData源:
    用OData源组件连接端点后,在数据流中添加脚本组件(作为转换),在脚本里读取响应的value数组,遍历每个元素并输出为行数据。给个C#示例:
    using System;
    using System.Data;
    using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
    using Microsoft.SqlServer.Dts.Runtime.Wrapper;
    using Newtonsoft.Json.Linq;
    
    [Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
    public class ScriptMain : UserComponent
    {
        public override void Input0_ProcessInputRow(Input0Buffer Row)
        {
            string jsonResponse = Row.ResponseJson;
            JObject obj = JObject.Parse(jsonResponse);
            JArray values = (JArray)obj["value"];
            
            foreach (JToken item in values)
            {
                Output0Buffer.AddRow();
                Output0Buffer.Id = (int)item["Id"];
                Output0Buffer.OwnerId = (int)item["OwnerId"];
                Output0Buffer.Description = (string)item["Description"];
            }
        }
    }
    
  • 再插入SQL Server:
    脚本组件输出的行数据直接连接到OLE DB目标组件,配置好字段映射后即可批量插入。

用Power Automate的话

  • 先获取OData数据:
    用HTTP动作调用OData端点获取响应,再添加解析JSON动作,用你提供的示例JSON自动生成Schema。
  • 遍历数组:
    添加应用到每一个动作,选择解析后的value数组作为遍历对象。
  • 批量插入:
    要么在循环内用SQL Server的「插入行」动作,将当前遍历项的字段映射到表中;要么先把所有数组项收集到数组变量,最后用「批量插入行」动作一次性完成插入。

通用注意事项

  • 确保SQL Server目标表的字段类型与OData返回的字段类型匹配(比如Id设为int,Description设为nvarchar)。
  • 如果OData响应存在分页(带有@odata.nextLink),需要额外处理分页逻辑,避免遗漏数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:20:57