dblink_open
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
- Если равен true (это значение по умолчанию), в случае ошибки, выданной на удалённой стороне соединения, ошибка также выдаётся локально. Если равен false, удалённая ошибка выдаётся локально как ЗАМЕЧАНИЕ, и возвращаемым значением функции будет - 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)