#azure #azure-data-factory-2
#azure #azure-data-factory-2
Вопрос:
В том, что я считал относительно простым кодом, я не могу понять, в чем проблема с добавлением другой строки в мой список конкатенаций
Ниже приведен код, который у меня есть в настоящее время, и я получаю ожидаемый результат
@concat('start ', if(equals(coalesce(pipeline().parameters.p_source_object.TYPE,''),'x'), 'a', 'b'))
Тем не менее, я хочу добавить больше строк в конкатенацию, но когда я добавляю запятую между двумя конечными скобками, вот так
@concat('start ', if(equals(coalesce(pipeline().parameters.p_source_object.TYPE,''),'x'), 'a', 'b'), )
Я получаю «недопустимую» ошибку с сообщением «Отсутствует точка». Если я поставлю точку перед запятой, ошибка исчезнет (но, очевидно, недопустимый синтаксис)
Чего он ожидает здесь?
В связи с этим, есть ли лучший способ объединения при одновременном выполнении некоторых функций, которые выводят строки? Это самый неинтуитивный интерфейс, который только можно себе представить (Microsoft, похоже, гордится этим смехотворным!)
Надеюсь, кто-нибудь сможет найти мое здравомыслие для меня!
Комментарии:
1. Я не уверен в «отсутствующем периоде», я никогда не видел этого раньше. Можете ли вы опубликовать снимок экрана? Для более сложных операций, подобных этой, я часто разбиваю его на несколько переменных только потому, что его может быть очень сложно визуально проанализировать. [Это особенно верно, когда ваша выходная строка содержит кавычки и запятые!] Поэтому я бы взял любое назначение уровня функции (например, if в вашем примере) и поместил его в свою собственную переменную. На этом этапе будет намного проще создать объединение: @concat(‘start’, переменные (‘someVar’), переменные (‘someOtherVar’)).
2. Будет сделано, когда я вернусь к этому, однако, что касается вашего комментария о переменных, я обсуждал этот путь, но у меня есть несколько таких «если», чтобы составить полную строку, которая мне нужна, и с бессмысленным способом установки переменных, это будет довольно сложно — если я непропустили лучший способ настройки переменных?
3. функция @RAB concat() должна устанавливать параметр после точки ‘,’ параметр не может быть нулевым. Подобная функция
concat('a',)
недопустима.4. @LeonYue, я думаю, вы неправильно читаете проблему, я вообще не могу ввести другой параметр, потому что он ожидает точку (обратите внимание, точка — «.», а не «,»)
5. @RAB: я думаю, что параметр с «.» является проблемой. Можете ли вы просто попробовать использовать setvariable activity и попытаться присвоить параметр переменной, когда я тестировал его с ошибкой.
Ответ №1:
В конце концов, я полностью переработал его, избегая слоев… однако я обнаружил решение
@{concat('start ', if(equals(coalesce(pipeline().parameters.p_source_object.TYPE,''),'x'), 'a', 'b'), 'dd')}
Хотя это не относится к тому, как … в начале строки есть пробел, это перестает считаться «динамическим содержимым», но вместо этого используется интерполяция строк
Комментарии:
1. и на самом деле… кажется, что просто волнистые скобки действительно делают свое дело!