Documentation PostgreSQL 14.22 » Référence » Commandes SQL » CALL

Précédent | Niveau supérieur | Suivant
BEGIN | Sommaire | CHECKPOINT

## CALL

CALL — Exécuter une procédure

## Synopsis

    CALL nom ( [ argument ] [, ...] )

## Description

`CALL` exécute une procédure.

Si la procédure a des arguments en sortie, alors une ligne de résultat sera retournée, contenant les valeurs de ces paramètres.

## Paramètres

`nom`

  Le nom (potientiellement qualifié du schéma) de la procédure.

`argument`

  Un argument en entrée pour l'appel de la procédure.

  Les arguments peuvent inclure des noms de paramètres, en utilisant la syntaxe ``nom` => `valeur``. Ceci fonctionne de la même façon que des appels de fonctions ordinaires ; voir Section 4.3 pour les détails.

  Les arguments doivent être fournis pour tous les paramètres de la procédure qui n'ont pas de valeurs par défaut, y compris pour les paramètres `OUT`. Néanmoins, les arguments correspondant aux paramètres `OUT` ne sont pas évalués, donc il est habituel de simplement écrire `NULL` pour eux.(Écrire autre chose pour un paramètre `OUT` pourrait causer des problèmes de compatibilité avec les prochaines versions de PostgreSQL.)

## Notes

L'utilisateur doit avoir le droit `EXECUTE` sur la procédure pour être autorisé à l'exécuter.

Pour appeler une fonction (pas une procédure), utilisez `SELECT` à la place.

Si `CALL` est exécuté dans un bloc de transaction, alors la procédure appelée ne peut pas exécuter d'ordre de contrôle de transaction. Les ordres de contrôle de transaction ne sont autorisés que si `CALL` est exécuté dans sa propre transaction.

PL/pgSQL gère différemment des paramètres en sortie dans les commandes `CALL` ; voir Section 43.6.3.

## Exemples

    CALL faire_maintenance_bd();

## Compatibilité

`CALL` est conforme au standard SQL, sauf pour la gestion des paramètres en sortie. Le standard dit que les utilisateurs devraient écrire des variables pour recevoir les valeurs des paramètres en sortie.

## Voir aussi

CREATE PROCEDURE