Набор данных фабрики данных Azure с @ в имени столбца - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть набор данных, поступающий от веб-службы Rest с @ в названии столбца: Например: { data[{ @id : 1, @value : "a" }, { @id : 2, @value : "b" } ] }

Я хочу использовать его в foreach и получить доступ к определенному столбцу: в foreach я получаюна выходе типа @activity('Lookup').output.value

в foreach есть хранимая процедура в качестве параметра ввода, я пытался получить столбец: я пытался @item().@value, но получил ошибку "символ строки '@' в позиции 'xx'не ожидается'.

есть ли способ избежать @ в имени столбца?или я могу переименовать столбец?

Большое спасибо

edit: вот JSON из конвейера ADF:

{
"name": "pipeline3",
"properties": {
    "activities": [
        {
            "name": "Lookup1",
            "type": "Lookup",
            "policy": {
                "timeout": "7.00:00:00",
                "retry": 0,
                "retryIntervalInSeconds": 30,
                "secureOutput": false,
                "secureInput": false
            },
            "typeProperties": {
                "source": {
                    "type": "HttpSource",
                    "httpRequestTimeout": "00:01:40"
                },
                "dataset": {
                    "referenceName": "HttpFile1",
                    "type": "DatasetReference"
                },
                "firstRowOnly": false
            }
        },
        {
            "name": "ForEach2",
            "type": "ForEach",
            "dependsOn": [
                {
                    "activity": "Lookup1",
                    "dependencyConditions": [
                        "Succeeded"
                    ]
                }
            ],
            "typeProperties": {
                "items": {
                    "value": "@activity('Lookup1').output.value",
                    "type": "Expression"
                },
                "activities": [
                    {
                        "name": "Stored Procedure12",
                        "type": "SqlServerStoredProcedure",
                        "policy": {
                            "timeout": "7.00:00:00",
                            "retry": 0,
                            "retryIntervalInSeconds": 30,
                            "secureOutput": false,
                            "secureInput": false
                        },
                        "typeProperties": {
                            "storedProcedureName": "[dbo].[testnv]",
                            "storedProcedureParameters": {
                                "d": {
                                    "value": {
                                        "value": "@item().@accno",
                                        "type": "Expression"
                                    },
                                    "type": "String"
                                }
                            }
                        },
                        "linkedServiceName": {
                            "referenceName": "AzureSqlDatabase1",
                            "type": "LinkedServiceReference"
                        }
                    }
                ]
            }
        }
    ]
},
"type": "Microsoft.DataFactory/factories/pipelines"

}

1 Ответ

0 голосов
/ 25 сентября 2018

Пожалуйста, попробуйте "@item () ['@ accno']" для @item (). @ Accno Также ответил в MSDN.

...