我正在尝试将Azure DataFactory管道中的元数据同步到SQL Server数据库中的表。
Azure中读取元数据活动中可见的输出如下:
{
"childItems": [
{
"name": "DemoFile1",
"type": "File"
},
{
"name": "DemoFile1",
"type": "File"
}
],
"effectiveIntegrationRuntime": "AutoResolveIntegrationRuntime (UK South)",
"executionDuration": 0,
"durationInQueue": {
"integrationRuntimeQueue": 0
},
"billingReference": {
"activityType": "PipelineActivity",
"billableDuration": [
{
"meterType": "AzureIR",
"duration": 0.016666666666666666,
"unit": "Hours"
}
]
}
}
我正在使用一个存储过程将元数据传输到SQL Server数据库中。
但是在SQL Server数据库表中,我得到的输出是:
System.Collections.Generic.Dictionary`2[System.String,System.Object]
我使用DataFactory中存储过程活动中的参数传递元数据。
Parameter Name: FileName
Type: String
Value: @activity('Metadata').output.childItems
存储过程代码如下:
BEGIN
INSERT INTO Table1 (
name, type)
SELECT
[name], [type]
FROM OPENJSON(@FileName, '$.childitems')
WITH (
name NVARCHAR(max) '$.name',
type NVARCHAR(max) '$.type'
) AS jsonValues
END
TIA!
我发现我做错了什么。参数值必须存储为字符串(使用括号(。
Parameter Name: FileName
Type: String
Value: @{activity('Metadata').output.childItems}