PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

dblink_open

dblink_open — ouvre un curseur sur une base de données distante

Synopsis

    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
   

Description

dblink_open() ouvre un curseur sur une base de données distante. Le curseur peut ensuite être manipulé avec dblink_fetch() et dblink_close().

Arguments

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.

Valeur de retour

Renvoie le statut, soit OK soit ERROR.

Notes

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.

Exemple

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)