#azure-data-factory
Вопрос:
У меня есть поиск «Выборка клиентов» с помощью инструкции SQL:
Select Count(CustomerId) As 'Row_count' ,Min(sales_amount) as 'Min_Sales' From [sales].
[Customers]
Он возвращает значение
10, 5000
Далее у меня есть поиск «Обновить минимальные продажи» с помощью инструкции SQL, но появляется ошибка:
Update Sales_Min_Sales
SET Row_Count = @activity('Fetch Customers').output.Row_count,
Min_Sales = @activity('Fetch Customers').output.Min_Sales
Select 1
Та же ошибка возникает, даже если я установил поиск в
Select @activity('Fetch Fetch Customers').output.Row_count
Ошибка:
A database operation failed with the following error: 'Must declare the scalar variable
"@activity".',Source=,''Type=System.Data.SqlClient.SqlException,Message=Must declare the
scalar variable "@activity".,Source=.Net SqlClient Data
Provider,SqlErrorNumber=137,Class=15,ErrorCode=-2146232060,State=2,Errors=
[{Class=15,Number=137,State=2,Message=Must declare the scalar variable "@activity".,},],'
Ответ №1:
У меня такая же настройка, как у вас. Два действия по поиску.
Первый просмотр показывает минимальный идентификатор и максимальный идентификатор, как показано на рисунке
{
"count": 1,
"value": [
{
"Min": 1,
"Max": 30118
}
],
"effectiveIntegrationRuntime": "DefaultIntegrationRuntime (East US)",
"billingReference": {
"activityType": "PipelineActivity",
"billableDuration": [
{
"meterType": "AzureIR",
"duration": 0.016666666666666666,
"unit": "DIUHours"
}
]
},
"durationInQueue": {
"integrationRuntimeQueue": 22
}
}
в моем втором поиске я использую приведенное ниже выражение
Update saleslt.customer set somecol=someval where CustomerID=@{activity('Lookup1').output.Value[0]['Min']}
Выберите 1 в качестве манекена
Просто нам нужно получить доступ к выходным данным поиска с использованием индексов, как уже упоминалось, и поместить выходные данные активности внутрь {}.