============================================================================== == Sujet: Installation de PL/pgSQL sous postgres == == Auteur: F.Camus G.Steulet == == Date : 06.05.2004 == Update: 11.05.2004 == Note : Inspiré de l'article http://www.commandprompt.com/ppbook/index.lxp?lxpwrap=c19610%2ehtm#ADDINGPLPGSQLTOYOURDATABASE ============================================================================== #Il existe deux manière de précéder à l'installation de plpgsql sous postgres #La première en utilisant psql, la seconde grâce à la commande 'creatlang' ============================================================================== == Utilisation de psql pour installer plpgsql == ============================================================================== # Création de la fonction plpgsql_call_handler # le chemin de la librairie peut être différent de '/usr/local/pgsql/lib/plpgsql.so' CREATE FUNCTION plpgsql_call_handler () RETURNS OPAQUE AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE 'C'; # Ajout du langage plpgsql CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler; REVOKE ALL ON LANGUAGE plpgsql FROM public; #Attribution des droits d'utilisateur GRANT ALL ON LANGUAGE plpgsql TO GROUP 'NomDuGroupe' ============================================================================== == Utilisation de createlang pour installer plpgsql == ============================================================================== # Il faut préalablement se logger avec le compte propriétaire des fichiers # postgres dans notre cas: postgres su postgres # Aller dans le répertoire postgres cd /usr/local/pgsql/bin # Executer la commande creatlang # La syntaxe est la suivante: # createlang [OPTION]... LANGNAME [DBNAME] # # Options: # -d, --dbname=DBNAME database to install language in # -l, --list show a list of currently installed languages # -L, --pglib=DIRECTORY find language interpreter file in DIRECTORY # -h, --host=HOSTNAME database server host # -p, --port=PORT database server port # -U, --username=USERNAME user name to connect as # -W, --password prompt for password # --help show this help, then exit ./creatlang plpgsql PG11 ============================================================================== == TEST == ============================================================================== create function uneFonction() returns int4 as ' declare unEntier int4; Begin unEntier := 10*10; return unEntier; end; 'LANGUAGE 'plpgsql'; select uneFonction () AS resultat; 100