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

dblink_fetch

примечание

Эта страница переведена при помощи нейросети GigaChat.

dblink_fetch – возвращает строки из открытого курсора в удаленной базе данных.

Синтаксис

dblink_fetch(text cursorname, int howmany [, bool fail_on_error]) returns setof record
dblink_fetch(text connname, text cursorname, int howmany [, bool fail_on_error]) returns setof record

Описание

dblink_fetch извлекает строки из курсора, ранее установленного с помощью dblink_open.

Аргументы

connname

: Имя соединения для использования. Не указывайте этот параметр, чтобы использовать неподписанное соединение.

cursorname

: Имя курсора для выборки из него.

howmany

: Максимальное количество строк для извлечения. Следующие howmany строки извлекаются, начиная с текущей позиции курсора и двигаясь вперед. Как только курсор достигает своего конца, больше не производится никаких строк.

fail_on_error

: Если установлено значение true (используется по умолчанию при пропуске), то ошибка, возникающая на удаленной стороне соединения, вызывает ошибку и локально. Если false, удаленная ошибка выдается локально как УВЕДОМЛЕНИЕ, а функция не возвращает ни одной строки.

Возвращаемое значение

Функция возвращает строку (строки), извлеченную из курсора. Чтобы использовать эту функцию, нужно указать ожидаемый набор столбцов, как это обсуждалось ранее для dblink.

Примечания

В случае несоответствия между количеством возвращаемых столбцов, указанных в предложении FROM, и фактическим количеством столбцов, возвращаемых удаленным курсором, будет выброшена ошибка. В этом случае удаленный курсор все равно будет продвинут на столько же строк, сколько было бы, если бы ошибки не произошло. То же самое верно для любой другой ошибки, возникающей в локальном запросе после выполнения удаленного FETCH.

Примеры

SELECT dblink_connect('dbname=postgres options=-csearch_path=');
dblink_connect
----------------
OK
(1 row)

SELECT dblink_open('foo', 'select proname, prosrc from pg_proc where proname like ''bytea%''');
dblink_open
-------------
OK
(1 row)

SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text);
funcname | source
----------+----------
byteacat | byteacat
byteacmp | byteacmp
byteaeq | byteaeq
byteage | byteage
byteagt | byteagt
(5 rows)

SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text);
funcname | source
-----------+-----------
byteain | byteain
byteale | byteale
bytealike | bytealike
bytealt | bytealt
byteane | byteane
(5 rows)

SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text);
funcname | source
------------+------------
byteanlike | byteanlike
byteaout | byteaout
(2 rows)

SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text);
funcname | source
----------+--------
(0 rows)