CALL — Exécuter une procédure
CALLnom
( [argument
] [, ...] )
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.
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
. Ceci
fonctionne de la même façon que des appels de fonctions
ordinaires ; voir Section 4.3 pour
les détails.
nom
=>
valeur
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.)
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.
CALL faire_maintenance_bd();
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.