

dblink_get_result — récupère le résultat d'une requête asynchrone
    dblink_get_result(text connname [, bool fail_on_error]) returns setof record
   
    dblink_get_result récupère le résultat d'une
    requête asynchrone précédemment envoyée avec
    dblink_send_query. Si la requête n'est pas
    terminée, dblink_get_result en attend la fin.
   
connnameLe nom de la connexion à utiliser.
fail_on_errorSi true (valeur par défaut en cas d'omission), une erreur distante est reportée localement comme une erreur locale. Dans le cas contraire, un message d'erreur distant est traité localement comme un message de type NOTICE, et la fonction ne retourne aucune ligne.
    Pour une requête asynchrone (c'est-à-dire une instruction SQL renvoyant des
    lignes), la fonction renvoie les lignes produites par la requête. Pour
    utiliser cette fonction, il faut spécifier l'ensemble des colonnes
    attendues, comme indiqué pour dblink.
   
    Pour une commande asynchrone (c'est-à-dire une instruction SQL ne renvoyant aucune
    ligne), la fonction renvoie une seule ligne avec une colonne texte
    contenant la chaîne de statut de la commande. Il est impératif
    d'indiquer dans la clause FROM appelante que le résultat
    est constitué d'une unique colonne texte .
   
    Cette fonction doit être appelée si
    dblink_send_query a renvoyé 1. Elle doit l'être
    une fois pour chaque requête envoyée, et une fois de plus pour obtenir
    un ensemble vide, avant de pouvoir utiliser à nouveau la connexion.
   
    Lorsqu'on utilise dblink_send_query et
    dblink_get_result, dblink récupère
    l'intégralité de la requête avant de les renvoyer au système local. Si la requête
    renvoit un grand nombre de lignes, cela peut conduire à une surcharge temporaire
    de la mémoire dans la session locale. Il peut être préférable d'ouvrir un curseur
    avec dblink_open puis de récupérer un nombre gérable de lignes.
    Sinon, vous pouvez utiliser un simple dblink(), qui évite la
    surcharge de la mémoire en mettant en attente de gros ensembles de résultats sur disque.
   
contrib_regression=# SELECT dblink_connect('dtest1', 'dbname=contrib_regression');
 dblink_connect
----------------
 OK
(1 row)
contrib_regression=# SELECT * FROM
contrib_regression-# dblink_send_query('dtest1', 'select * from foo where f1 < 3') AS t1;
 t1
----
  1
(1 row)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 |     f3
----+----+------------
  0 | a  | {a0,b0,c0}
  1 | b  | {a1,b1,c1}
  2 | c  | {a2,b2,c2}
(3 rows)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 | f3
----+----+----
(0 rows)
contrib_regression=# SELECT * FROM
contrib_regression-# dblink_send_query('dtest1', 'select * from foo where f1 < 3; select * from foo where f1 > 6') AS t1;
 t1
----
  1
(1 row)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 |     f3
----+----+------------
  0 | a  | {a0,b0,c0}
  1 | b  | {a1,b1,c1}
  2 | c  | {a2,b2,c2}
(3 rows)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 |      f3
----+----+---------------
  7 | h  | {a7,b7,c7}
  8 | i  | {a8,b8,c8}
  9 | j  | {a9,b9,c9}
 10 | k  | {a10,b10,c10}
(4 rows)
contrib_regression=# SELECT * FROM dblink_get_result('dtest1') AS t1(f1 int, f2 text, f3 text[]);
 f1 | f2 | f3
----+----+----
(0 rows)