Передать массив из node-postgres в функцию plpgsql
Функция plpgsql:
CREATE OR REPLACE FUNCTION testarray (int[]) returns int as $
DECLARE
len int;
BEGIN
len := array_upper($1);
return len;
END
$ language plpgsql;
Запрос node-postgres + тестовый массив:
var ta = [1,2,3,4,5];
client.query('SELECT testarray($1)', [ta], function(err, result) {
console.log('err: ' + err);
console.log('result: ' + result);
});
Вывод с узла сервера:
ошибка: ошибка: значение массива должно начинаться с "{" или информация о размерах
результат: не определено
Я также пытался привести параметр в запросе клиента, какtestarray($1::int[])
который вернул ту же ошибку.
Я изменил аргумент функции на(anyarray int)
и ошибка вывода изменилась:
ошибка: ошибка: неверный синтаксис ввода для целого числа: "1,2,3,4,5"
результат: не определено
А также пара других вариаций.
Я ищу вариант, который не дает ошибок и возвращает 5.
Я читал оPostgres проблема разбора массива и этот вопрос переполнения стека на параметризованных массивах в node-postgres:
node-postgres: как выполнитьГДЕ col IN (<динамический список значений>) запрос?Но ответ неКажется, там нет.