2

ソース、API からデータをコピーし、それを Azure SQL DB にコピーしています。しかし、列の 1 つで、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 フィールドを使用して、データを別のテーブルに保存することです。次に、パイプラインに別のアクティビティを追加し、このデータを取得して実際のテーブルに保存します。この 2 番目のアクティビティでは、t-sql ステートメントを使用してコピー アクティビティの sqlQuery を変更し、そこから必要な値を抽出できます。

これは、クエリを設計するときに役立ちます: https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-2017

これが役に立ったことを願っています!:)

PS: 2 番目のアクティビティでは、これを使用して「値」を取得します。

select JSON_VALUE(fieldWhereYouStoredTheJson, '$[0].value') as jsonValue from temporaryTable
于 2018-05-18T12:37:41.463 に答える