2

我正在从源、API 复制数据,并将其复制到 Azure SQL DB。但在其中一个专栏中,我得到了 Json 对象。

我可以在管道中使用动态参数(通过预复制脚本或其他方式)以仅从这些 json 对象中获取特定标签的值的任何方式,以便我只能在列中具有该值。唯一的限制是我不能更换水槽。它必须是 Azure SQL DB。

我得到的 Json 对象:[{"self":" https://xxxxxxxx.jira.com/rest/api/2/customFieldOption/11903 ","value":"Yes","id":"11903"} ]

而且我只想要“价值”标签响应而不是完整的 json。

4

1 回答 1

2

预复制脚本是您在复制新数据之前对数据库运行的脚本,而不是修改您正在摄取的数据。

如果您无法更改接收器,您可以做的是将数据存储在不同的表中,使用 json 的 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
于 2018-05-18T12:37:41.463 回答