Sommaire

Procédures stockées

Les langages de procédures stockées ne sont pas disponibles par défaut dans une base de données. Ils doivent être installés, dans chaque base de données, avec la commande CREATE LANGUAGE ou avec la commande système équivalente createlang. Il est possible d’installer un langage dans une base de données modèle comme template1, pour le rendre automatiquement disponible dans les bases de données créées à partir de ce modèle.

1. SQL

Une fonction du type SQL peut exécuter une liste de requête SQL.

Il n’est pas possible d’utiliser dans ce type de fonction des commandes de contrôles de transactions comme SAVEPOINT ou COMMIT, ni des commandes utilitaires, comme VACUUM, qui ne peuvent pas être exécutées au sein d’une transaction.

Les ordres DML comme SELECT, INSERT, UPDATE, DELETE et les ordres DDL comme CREATE, ALTER ou DROP peuvent être exécutés. Le corps de la fonction peut être encadré soit par de simples guillemets, soit par des doubles dollars, particulièrement utiles lorsque les requêtes elles-mêmes contiennent de simples guillemets.

Seules les données du dernier ordre SQL peuvent être retournées. Par défaut, une fonction ne retournant qu’un seul tuple, seule la première ligne du dernier enregistrement sera retournée, quel que soit le tri appliqué dans cette requête. ...