我正在从源,API复制数据,并将其复制到Azure SQL DB中。但在其中一个专栏中,我得到了Json对象。
任何方式我都可以在管道中使用动态参数(通过预复制脚本或其他东西)来仅从这些json对象中获取特定标记的值,以便我只能在列中拥有该值。唯一的限制是我不能改变接收器。它必须是Azure SQL DB。
我得到的Json对象: [{ “自”: “https://xxxxxxxx.jira.com/rest/api/2/customFieldOption/11903”, “值”: “是”, “ID”: “11903”}]
我只希望'value'标签响应而不是完整的json。
答案 0 :(得分:2)
预复制脚本是在复制新数据之前针对数据库运行的脚本,而不是用于修改要摄取的数据。
如果无法更改接收器,可以执行的操作是将数据存储在不同的表中,使用jchar的varchar字段。然后在管道中添加另一个活动,您可以在其中获取此数据并将其存储在实际表中。在第二个活动中,您可以使用t-sql语句修改复制活动的sqlQuery,以从中提取所需的值。
在设计查询时,这将非常有用:https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-2017
希望这有帮助! :)
PS:在第二个活动中,使用它来获得"值"
select JSON_VALUE(fieldWhereYouStoredTheJson, '$[0].value') as jsonValue from temporaryTable