При выполнении функции PostgreSQL, которая RETURNS void
, db.none()
отклоняет "No return data was expected."
,
Затем я использую метод db.one()
, который разрешается с помощью объекта { PS_name: '' }
.
Должен ли я ожидать, что функции void PostgreSQL будут фактически возвращать пустой объект? Каким будет наиболее подходящий способ обработки функций void с помощью pg-promise
?
Каким будет наиболее подходящий способ обработки функций void с помощью pg-prom?
Метод базы данных proc.
db.proc('proc_name', [param1, param2,...])
.then(data => {
/* data = either null or an object */
})
.catch(error => {
/* error */
});
ОБНОВИТЬ
Как вы указываете типы параметров при использовании
proc
? т.е. фиксироватьfunction foo(unknown) does not exist
? Если я делаюdb.proc('foo($1::int2[])', x)
, то он выдаетsyntax error at or near "("
.
Вы не можете сделать это с помощью метода proc, который был создан, чтобы все было очень просто. Если для вашего вызова требуется кастинг типа SQL, вам необходимо выполнить его как обычный запрос с литьем внутри шаблона:
db.oneOrNone('SELECT * FROM proc_name($1::int2[], $2, ...)', [param1, param2,...])
.then(data => {
/* data = either null or an object */
})
.catch(error => {
/* error */
});
Метод oneOrNone в этом контексте эквивалентен в ожидании результата методу proc.
proc
методproc
инъекций SQL?