Я пытаюсь использовать функцию EXECUTE format (...) USING (param1, param2, ...) в функции postgres. Соответствующий фрагмент кода выглядит следующим образом
EXECUTE format('select json_agg(json_build_object(''Attribute'', x.attr, ''Aggregate'',x.agg))
from
( select %I as attr, round(sum(value),6) as agg
from schema_name.seperate_function($1,$2)
group by attr
order by agg desc ) x', columnNames[1])
USING (param1, param2)
Где
columnNames[1], param1, & param2
предварительно определены в функции. Фактически, param1 и param2 являются входными данными для функции и объявляются в начале тела функции, если это вообще актуально.
DECLARE
param1 ALIAS FOR $1;
param2 ALIAS FOR $2;
Естественно, я фактически не вызывал param1 или 2 моего параметра, а также schema_name.seperate_function не является реальным именем функции, на которое ссылается этот фрагмент кода. Независимо от того, когда я выполняю это, я получаю следующую ошибку:
ERROR: there is no parameter $2
LINE 4: ... from schema_name.seperate_function($1,$2)
Если вместо этого, если я заменю $ 2 в отформатированной строке запроса на жестко закодированное значение и избавлюсь от param2 из условия USING, все будет работать нормально. Сначала я думал, что это связано с синтаксисом, но, посмотрев на Принятый ответ здесь
например, я не вижу проблем с моим синтаксисом. Любое предложение здесь будет с благодарностью, спасибо.