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)