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 ux_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=uxdb password=123456');
dblink_connect ---------------- OK (1 row)
SELECT dblink_open('foo', 'select proname, prosrc from ux_proc');
dblink_open ------------- OK (1 row)