PostgreSQL Elephant Logo
2025年9月25日: PostgreSQL 18 发布!
dblink_open
上一步  上一级 F.11. dblink — 连接到其他 PostgreSQL 数据库 首页  下一步

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() 进行操作。

参数

connname

要使用的连接的名称;省略此参数可使用未命名的连接。

cursorname

要为此游标指定的名称。

sql

您希望在远程数据库中执行的 SELECT 语句,例如 select * from pg_class。

fail_on_error

如果为 true(省略时默认为 true),则远程连接端发生的错误也会导致本地引发错误。如果为 false,则远程错误将作为 NOTICE 本地报告,并且函数的返回值设置为 ERROR。

返回值

返回状态,为 OK 或 ERROR。

注释

由于游标只能在事务中持久存在,因此如果远程端尚未处于事务中,dblink_open 会在远程端启动一个显式的事务块(BEGIN)。当执行匹配的 dblink_close 时,该事务将再次关闭。请注意,如果您在 dblink_open 和 dblink_close 之间使用 dblink_exec 来更改数据,然后发生错误,或者在 dblink_close 之前使用 dblink_disconnect,您的更改将丢失,因为事务将被中止。

示例

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

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

上一步  上一级  下一步
dblink_exec  首页  dblink_fetch