PostgreSQL 16.0文書
F.12. dblink — 他のPostgreSQLデータベースへ接続する
前へ 上へdblink_fetch 次へ

dblink_fetch

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

真(省略時のデフォルト)の場合、接続のリモート側で発生したエラーによりローカル側でもエラーが発生します。 偽の場合リモート側のエラーはローカル側にはNOTICEとして報告され、この関数は行を返しません。

戻り値

この関数はカーソルから取り出された行を返します。 この関数を使用するためには、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)

前へ 上へ 次へ
dblink_open ホーム dblink_close