dblink_open — ouvre un curseur sur une base de données distante
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()
ouvre un curseur sur une base de
données distante. Le curseur peut ensuite être manipulé avec
dblink_fetch()
et
dblink_close()
.
connname
Le nom de la connexion à utiliser ; ce paramètre doit être omis pour utiliser une connexion sans nom.
cursorname
Nom à affecter au curseur.
sql
L'instruction SELECT
à exécuter sur l'hôte distant,
par exemple SELECT * FROM pg_class
.
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 valeur de retour de la fonction est positionné à
ERROR
.
Renvoie le statut, soit OK
soit
ERROR
.
Puisqu'un curseur ne peut persister qu'au sein d'une transaction,
dblink_open
lance un bloc de transaction explicite
(BEGIN
) côté distant, si le côté distant n'est
pas déjà à l'intérieur d'une transaction. Cette transaction est refermée
à l'exécution de l'instruction dblink_close
.
Si dblink_exec
est utilisée
pour modifier les données entre dblink_open
et
dblink_close
, et qu'une erreur survient ou
que dblink_disconnect
est utilisé avant
dblink_close
, les modifications sont
perdues car la transaction est annulée.
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)