Перейти к основному содержимому

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)