dblink_fetch — renvoie des lignes à partir d'un curseur ouvert sur une base de données distante
dblink_fetch(text cursorname, int howmany [, bool fail_on_error]) returns setof record dblink_fetch(text connname, text cursorname, int howmany [, bool fail_on_error]) returns setof record
dblink_fetch
récupère des lignes à partir d'un
curseur déjà ouvert par dblink_open
.
connname
Nom de la connexion à utiliser ; ce paramètre doit être omis pour utiliser une connexion sans nom.
cursorname
Le nom du curseur à partir duquel récupérer les lignes.
howmany
Nombre maximum de lignes à récupérer. Les
howmany
lignes suivantes sont récupérées, en
commençant à la position actuelle du curseur, vers l'avant. Une fois
le curseur arrivé à la fin, aucune ligne supplémentaire n'est
renvoyée.
fail_on_error
Si 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.
La fonction renvoie les lignes récupérées à partir du curseur. Pour
utiliser cette fonction, l'ensemble des colonnes
attendues doit être spécifié, comme décrit précédemment pour
dblink
.
Si le nombre de colonnes de retour spécifiées dans
la clause FROM
, et le nombre réel de colonnes renvoyées
par le curseur distant diffèrent, une erreur est remontée. Dans ce cas, le curseur
distant est tout de même avancé du nombre de lignes indiqué, comme si
l'erreur n'avait pas eu lieu. Il en est de même pour toute autre erreur
survenant dans la requête locale après l'exécution
du FETCH
distant.
SELECT dblink_connect('dbname=postgres options=-csearch_path='); dblink_connect ---------------- OK (1 row) SELECT dblink_open('foo', 'select proname, prosrc from pg_proc where proname like ''bytea%'''); dblink_open ------------- OK (1 row) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source ----------+---------- byteacat | byteacat byteacmp | byteacmp byteaeq | byteaeq byteage | byteage byteagt | byteagt (5 rows) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source -----------+----------- byteain | byteain byteale | byteale bytealike | bytealike bytealt | bytealt byteane | byteane (5 rows) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source ------------+------------ byteanlike | byteanlike byteaout | byteaout (2 rows) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source ----------+-------- (0 rows)