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 (potentiellement 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 41.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.