dblink_open
Эта страница переведена при помощи нейросети GigaChat.
dblink_open
– открывает курсор в удаленной базе данных.
Синтаксис
dblink_open(text cursorname, text sql [, bool fail_on_error]) returns text
dblink_open(text connname, text cursorname, text sql [, bool fail_on_error]) returns text
Описание
dblink_open()
открывает курсор в удаленной базе данных. Впоследствии этот курсор может быть изменен с помощью dblink_fetch()
и dblink_close()
.
Аргументы
connname
: Имя соединения для использования. Не указывайте этот параметр, чтобы использовать неподписанное соединение.
cursorname
: Имя, которое нужно присвоить этому курсору.
sql
: Инструкция SELECT
, которая будет выполняться в удаленной базе данных, например select * from pg_class
.
fail_on_error
: Если истинно (по умолчанию, если опущено), то ошибка, возникающая на удаленном конце соединения, вызывает ошибку и локально. Если ложно, удаленная ошибка сообщается локально как УВЕДОМЛЕНИЕ, а возвращаемое значение функции устанавливается на ERROR
.
Возвращаемое значение
Возвращает статус, OK
или ERROR
.
Примечания
Поскольку курсор может существовать только внутри транзакции, dblink_open
запускает явный блок транзакций (BEGIN
) на удаленной стороне, если удаленная сторона еще не находится в транзакции. Эта транзакция будет закрыта снова при выполнении соответствующей команды dblink_close
. Обратите внимание, что если используется команда dblink_exec
для изменения данных между командами dblink_open
и dblink_close
, а затем происходит ошибка или используется команда dblink_disconnect
перед командой dblink_close
, изменение будет потеряно, потому что транзакция будет отменена.
Примеры
SELECT dblink_connect('dbname=postgres options=-csearch_path=');
dblink_connect
----------------
OK
(1 row)
SELECT dblink_open('foo', 'select proname, prosrc from pg_proc');
dblink_open
-------------
OK
(1 row)