登录
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
如果为真(省略时为默认值),则连接远程端抛出的错误会导致本地也抛出错误。如果为假,则远程错误在本地报告为 NOTICE,并且函数的返回值设置为
ERROR
。
返回值
返回状态,即OK
或ERROR
。
备注
由于游标只能在事务中持续存在,因此,dblink_open
在远程端启动一个显式事务块 (BEGIN
),如果远程端尚未处于事务中。当匹配的dblink_close
执行时,该事务将再次关闭。请注意,如果您使用dblink_exec
在dblink_open
和dblink_close
之间更改数据,然后出现错误或您在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)