★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

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()で操作することができます。

引数

conname

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

cursorname

このカーソルに割り当てる名前です。

sql

例えばselect * from pg_classといった、リモートデータベースで実行させたいSELECT文です。

fail_on_error

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

戻り値

状態、つまりOKまたはERRORを返します。

注釈

カーソルはトランザクション内でのみ持続することができますので、リモート側がまだトランザクションの内部でない場合、dblink_openはリモート側で明示的なトランザクションブロックを開始(BEGIN)します。 このトランザクションは対応するdblink_closeが実行された時に同様に閉ざされます。 dblink_opendblink_closeの間にdblink_execを使用してデータを変更した場合、エラーが発生することに注意してください。 また、dblink_closeの前にdblink_disconnectを使用すると、トランザクションがアボートしますので変更が失われることに注意してください。

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

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