По сути, если у меня есть «n» объектов в качестве входных данных, то это следует использовать в запросе для формирования «n» условий.
Вход
[
{
Id: "Id1",
System: "System1"
},
{
Id: "Id2",
System: "System2"
}
]
Выход
Select Name FROM Account where (Id = "Id1" and System = "System1") OR (Id = "Id2" and System = "System2")
ВНИМАНИЕ: создание SQL-запросов из строк может быть причиной уязвимости SQL-инъекция. Вы несете ответственность за то, как предотвратить эту уязвимость
Используя reduce(), вы можете преобразовать каждый элемент массива в строку, чтобы соединить их все:
%dw 2.0
output application/json
---
"Select Name FROM Account where " ++ (payload reduce ((item, acc = "") -> acC++ (if (sizeOf(acc)>0) " OR " else "") ++ "(Id = \"" ++ item.Id ++"\" and System=\"" ++ item.System ++ "\")" ))
Есть ли лучший способ сделать это, чтобы предотвратить SQL-инъекции?