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_fetchdblink_openによりあらかじめ確立したカーソルから行を取り出します。

引数

conname

使用する接続の名前です。 無名の接続を使用する場合はこのパラメータを省略します。

cursorname

行を取り出すカーソルの名前です。

howmany

受け取る行の最大数です。 カーソルの現在位置から次のhowmany行を取り出し、カーソルの位置を前方に移動します。 カーソルが終端まで達すると、これ以上の行は生成されません。

fail_on_error

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

戻り値

この関数はカーソルから取り出された行を返します。 この関数を使用するためには、dblinkで説明したように、想定する列集合を指定する必要があります。

注釈

リモートカーソルから返る実際の列数とFROM句で指定された列数と異なる場合エラーが発生します。 この場合リモート側のカーソルは、エラーが発生しなかった場合と同じ行数分位置が変わります。 リモート側のFETCHが完了した後にローカル側でこの他のエラーが発生した場合も同じです。

 test=# select dblink_connect('dbname=postgres');
  dblink_connect
 ----------------
  OK
 (1 row)

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

 test=# 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)

 test=# 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)

 test=# select * from dblink_fetch('foo', 5) as (funcname name, source text);
   funcname  |   source
 ------------+------------
  byteanlike | byteanlike
  byteaout   | byteaout
 (2 rows)

 test=# select * from dblink_fetch('foo', 5) as (funcname name, source text);
  funcname | source
 ----------+--------
 (0 rows)
   
アダルトレンタルサーバー