powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / dblink. Вызов процедуры с out параметров
3 сообщений из 3, страница 1 из 1
dblink. Вызов процедуры с out параметров
    #40080133
alex407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вызываю процедура, у которой есть out параметр, через dblink.
Получаю ошибку: statement returning results not allowed.
При этом процедура реально выполнятся нормально.

Можно как-то сделать такой вызов без ошибки или это ограничение dblink?

Вызов примерно такой:
Код: plsql
1.
PERFORM public.dblink_exec('db', 'CALL dbo.procname(1, NULL)');
...
Рейтинг: 0 / 0
dblink. Вызов процедуры с out параметров
    #40080170
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex407,

dblink_exec предназначена для выполнения команд не возвращающих строки, типа create, alter, drop, truncate.
А процедура с выходным параметром возвращает строку, поэтому либо нужно вызов call обернуть в plpgsql-блок и подставить переменную вместо null. Либо вызывать функцию dblink и обрабатывать возвращаемую строку.

Пример.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
postgres=# create procedure p (in out a int) as 'begin a := 42; end;' language plpgsql;
CREATE PROCEDURE

postgres=# call p(null);
 a  
----
 42
(1 row)

postgres=# \c demo
demo=# create extension dblink;
CREATE EXTENSION

demo=# do $g$begin perform dblink_exec('dbname=postgres', 'do $$declare l int; begin CALL p(l); end;$$'); end;$g$;
DO

demo=# do $$ declare r record; begin select * into r from dblink('dbname=postgres', 'CALL p(NULL)') AS t(x int); end;$$;
DO
...
Рейтинг: 0 / 0
dblink. Вызов процедуры с out параметров
    #40080433
alex407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое! То, что нужно!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / dblink. Вызов процедуры с out параметров
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]