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_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)