Documentation PostgreSQL 14.22 » Annexes » Modules supplémentaires fournis » dblink » dblink_open

Précédent | Niveau supérieur | Suivant
dblink_exec | Sommaire | dblink_fetch

## 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)