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 * from pg_class
といった、リモートデータベースで実行させたいSELECT
文です。
fail_on_error
真(省略時のデフォルト)の場合、接続のリモート側で発生したエラーによりローカル側でもエラーが発生します。
偽の場合リモート側のエラーはローカル側にはNOTICEとして報告され、この関数の戻り値はERROR
になります。
状態、つまりOK
またはERROR
を返します。
カーソルはトランザクション内でのみ持続することができますので、リモート側がまだトランザクションの内部でない場合、dblink_open
はリモート側で明示的なトランザクションブロックを開始(BEGIN
)します。
このトランザクションは対応するdblink_close
が実行された時に同様に閉ざされます。
dblink_open
とdblink_close
の間にdblink_exec
を使用してデータを変更した場合、エラーが発生することに注意してください。
また、dblink_close
の前にdblink_disconnect
を使用すると、トランザクションがアボートしますので変更が失われることに注意してください。
SELECT dblink_connect('dbname=postgres'); dblink_connect ---------------- OK (1 row) SELECT dblink_open('foo', 'select proname, prosrc from pg_proc'); dblink_open ------------- OK (1 row)