## 数据库链接\_得到\_结果 数据库链接\_得到\_result — 获取异步查询结果 ## 概要 ``` dblink_get_result(text connname [, bool fail_on_error]) returns setof record ``` ## 描述 `dblink_get_result`收集之前发送的异步查询的结果`dblink_send_query`.如果查询尚未完成,`dblink_get_result`会等到它。 ## 论据 *`连名`* 要使用的连接的名称。 *`fail_on_error`* 如果为 true(省略时的默认值),则在连接的远程端引发的错误会导致本地也引发错误。如果为 false,则远程错误在本地报告为 NOTICE,并且该函数不返回任何行。 ## 返回值 对于异步查询(即返回行的SQL语句),函数返回查询生成的行。要使用此函数,您需要指定预期的列集,正如前面讨论的`数据库链接`. 对于异步命令(即不返回行的SQL语句),函数返回一行,其中一个文本列包含命令的状态字符串。仍然需要指定结果在调用中只有一个文本列`从…起`条款 ## 笔记 这个函数*必须*如果`dblink_发送_查询`返回1.在再次使用连接之前,必须为每个发送的查询调用一次,再调用一次以获得空集结果。 使用时`dblink_发送_查询`和`dblink_获取_结果`,dblink将获取整个远程查询结果,然后将其中任何结果返回给本地查询处理器。如果查询返回大量行,这可能会导致本地会话中出现短暂的内存膨胀。用光标打开这样的查询可能更好`dblink_打开`然后一次获取可管理的行数。或者,使用普通的`dblink()`,它通过将大型结果集假脱机到磁盘来避免内存膨胀。 ## 例子 ``` contrib_regression=# SELECT dblink_connect('dtest1', 'dbname=contrib_regression'); dblink_connect ```