On this page
dblink_open
dblink_open —在远程数据库中打开游标
Synopsis
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
Description
dblink_open()
在远程数据库中打开一个游标。随后可以使用dblink_fetch()
和dblink_close()
操纵光标。
Arguments
connname
- 使用的连接名称;忽略此参数以使用未命名的连接。
cursorname
- 分配给此光标的名称。
sql
- 您希望在远程数据库中执行的
SELECT
语句,例如select * from pg_class
。
- 您希望在远程数据库中执行的
fail_on_error
- 如果为 true(省略时的默认值),则在连接的远程端引发的错误也将导致本地引发错误。如果为 false,则将远程错误本地报告为 NOTICE,并且该函数的返回值设置为
ERROR
。
- 如果为 true(省略时的默认值),则在连接的远程端引发的错误也将导致本地引发错误。如果为 false,则将远程错误本地报告为 NOTICE,并且该函数的返回值设置为
Return Value
返回状态OK
或ERROR
。
Notes
由于游标只能持久存在于事务中,因此如果远程端尚未在事务中,则dblink_open
在远程端启动显式事务块(BEGIN
)。当执行匹配的dblink_close
时,该事务将再次关闭。请注意,如果使用dblink_exec
在dblink_open
和dblink_close
之间更改数据,然后发生错误,或者在dblink_close
之前使用dblink_disconnect
,则更改将丢失,因为事务将中止。
Examples
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)