Chapitre 5 : Les procédures stockées PL/SQL



Documents pareils
Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

I. Introduction aux fonctions : les fonctions standards

Présentation du PL/SQL

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Bases de données avancées

A QUOI SERVENT LES BASES DE DONNÉES?

SQL MAP. Etude d un logiciel SQL Injection

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Manuel d'installation

Oracle Le langage procédural PL/SQL

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

SQL Server 2012 Administrez une base de données : Exercices et corrigés

.NET - Classe de Log

Cours Langage C/C++ Programmation modulaire

Mysql. Les requêtes préparées Prepared statements

Structure fonctionnelle d un SGBD

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Cours Bases de données 2ème année IUT

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

ORACLE TUNING PACK 11G

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Chapitre 10. Architectures des systèmes de gestion de bases de données

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Java DataBaseConnectivity

Couche application. La couche application est la plus élevée du modèle de référence.

La gestion des serveurs de mail

Mise en œuvre d un poste virtuel

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Dynamic Host Configuration Protocol

TP Contraintes - Triggers

//////////////////////////////////////////////////////////////////// Administration bases de données

Bases de Données relationnelles et leurs systèmes de Gestion

TP réseaux 4 : Installation et configuration d'un serveur Web Apache


Analyse tarifaire en ligne (TAO) de l'omc

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

et Groupe Eyrolles, 2006, ISBN :

Présentation du module Base de données spatio-temporelles

Bases de programmation. Cours 5. Structurer les données

CATALOGUE FORMATIONS DOMAINE Bases de données

3. La SGA ou System global Area

3IS - Système d'exploitation linux - Programmation système

Cours d initiation à la programmation en C++ Johann Cuenin

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

ALOHA LOAD BALANCER METHODE DE CONTROLE DE VITALITE

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Votre appareil est configuré en usine pour permettre d'envoyer immédiatement des SMS.

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Bases de données avancées Introduction

Activer la connectivité des systèmes de stockage 3PAR

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Plan du cours Cours théoriques. 29 septembre 2014

Outils logiciels pour l'ingénierie documentaire

Connaître la version de SharePoint installée

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Gestion des utilisateurs et de leurs droits

Guide d'installation. Release Management pour Visual Studio 2013

A QUOI SERVENT LES BASES DE DONNÉES?

Du 10 Fév. au 14 Mars 2014

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés Volubis.fr

Guide de fonctions du téléphone du système SCI Norstar

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Stockage du fichier dans une table mysql:

Algorithmique et Programmation, IMA

ORACLE DIAGNOSTIC PACK 11G

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

FileMaker Server 13. Publication Web personnalisée avec XML

[ Sécurisation des canaux de communication

Supervision des applications et services réseaux

Le service FTP. M.BOUABID, Page 1 sur 5

Installation d'un serveur DHCP sous Windows 2000 Serveur

Table des Matières. 2 Acronis, Inc

Logiciel Enterprise Guide Version 1.3 Windows

Sql Server 2005 Reporting Services

SafeGuard Enterprise Web Helpdesk. Version du produit : 6.1

Téléchargement du micrologiciel de téléviseur ACL AQUOS

Introduction à JDBC. Accès aux bases de données en Java

Est-il possible d'être sur la 1ère page de Google?

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

SafeGuard Enterprise Web Helpdesk. Version du produit : 5.60

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Transcription:

I. Introduction Une procédure ou une fonction stockée est un bloc PL/SQL nommé pouvant accepter des paramètres et être appelée. Généralement, on utilise une fonction pour calculer une valeur. Les procédures et les fonctions possèdent une structure semblable sauf qu'une fonction doit retourner une valeur à l'environnement appelant. Comme les procédures, les fonctions sont composées de quatre parties : un en-tête, une section déclarative, une partie exécutable et une partie optionnelle de gestion d'erreur. Les procédures et les fonctions sont compilées et stockées dans la base de données, comme tout autre objet (donnée) manipulé par le moteur du SGBD. Les performances sont assurées par les facteurs suivants : Les procédures et les fonctions stockées n ont pas besoin d'être analysées une seconde fois à l'exécution (gain de temps : pas de recompilation). Un gain de place en mémoire contribue à cette amélioration de performances car la procédure chargée en mémoire pour son exécution est partagée par tous les objets qui la demandent (applications). De plus la procédure s exécute immédiatement si elle en mémoire (réduction des accès disque), Réduction du trafic sur le réseau (soumission d'un bloc PL/SQL au moteur au lieu d'une commande SQL). II. Les fonctions stockées Une fonction est un sous-programme qui calcule une valeur. Pour créer une fonction, on utilise la commande CREATE FUNCTION, dans laquelle on peut spécifier une liste de paramètres. Dans cette commande on doit définir la valeur qui sera retournée à l'environnement appelant et définir les actions effectuées par le bloc PL/SQL standard. II.1. Syntaxe de création d une fonction stockée CREATE [OR REPLACE] FUNCTION Function_name ( parameter1 [ mode1] datatype1, parameter2 [ mode2] datatype2,...) RETURN datatype IS AS -- déclaration des variables locals -- code de la fonction Wafa WALHA 1/5 ISET Tozeur

RETURN(Valeur) EXCEPTION Traitement des exceptions END ; Paramètre Function_name Parameter Mode Datatype RETURN datatype Nom de la fonction Nom de la variable PL/SQL dont la valeur est passée à la fonction Le type de paramètre ; seul le paramètre IN doit être déclaré Type de donnée du paramètre Type de donnée de la valeur RETURN qui doit être renvoyée par la fonction Remarques : L'option REPLACE indique que si la fonction existe déjà, elle sera remplacée par la nouvelle version crée par la requête. Le type de donnée du RETURN ne doit avoir de taille spécifiée. Le bloc PL/SQL commence soit par un soit par une section de déclaration de variables locales et se termine par END ou END function_name. Il doit obligatoirement y avoir au moins une expression RETURN (variable). Il est impossible de faire référence à des variables hôtes ou à des variables de substitution dans le bloc PL/SQL d'une fonction stockée. CREATE OR REPLACE FUNCTION SOMME(N1 NUMBER, N2 NUMBER) RETURN NUMBER IS S:=N1+N2; RETURN(S); II.2. Appel d une fonction stockée Les fonctions sont appelées à l'intérieur d'expression PL/SQL. Pour que la fonction s'exécute convenablement il faut créer une variable hôte pour y stocker la valeur retournée. Lors de Wafa WALHA 2/5 ISET Tozeur

l'exécution, la variable hôte est initialisée avec la valeur renvoyée par le RETURN. Une fonction peut accepter plusieurs paramètres IN mais elle ne doit retourner qu'une seule valeur. DECLARE S:=SOMME(10,12); DBMS_OUTPUT.PUT_LINE(S); III. Les procédures stockées Pour créer une procédure, on utilise l'expression CREATE PROCEDURE qui définit les actions qui seront exécutées par le bloc PL/SQL. Cette expression peut définir une liste de paramètres. III.1. Syntaxe de création d une procédure stockée CREATE [OR REPLACE] PROCEDURE Procedure_name (parameter1[mode1] datatype1, parameter2 [mode2] datatype2,...) IS AS -- déclaration des variables locals -- code de la procédure Paramètre Procedure_name Parameter Mode Datatype Nom de la procédure Nom de la variable PL/SQL qui est passée, retournée à l environnement appelant, ou les deux suivant le mode choisit Type de l argument : IN (par défaut) OUT IN OUT Type de donnée de l argument Remarques : Le bloc PL/SQL commence par un ou la déclaration des variables locales et se termine par END ou END procedure_name. Il est impossible de faire référence à des variables hôtes ou à des variables de substitution. Wafa WALHA 3/5 ISET Tozeur

L'option REPLACE indique que si la procédure existe déjà, elle sera supprimée et remplacée par celle créée par la requête. CREATE OR REPLACE PROCEDURE SOMME(N1 IN NUMBER, N2 IN NUMBER, S OUT NUMBER) IS S:=N1+N2; III.2. Les modes de paramètres d une procédure stockée Les paramètres de la procédure permettent de transférer des valeurs depuis et vers l'environnement appelant. Les paramètres possèdent chacun trois modes : IN, OUT et IN OUT. Type de paramètre IN (par défaut) OUT IN OUT Une valeur constante est passée de l environnement appelant vers la procédure Une valeur est passée de la procédure vers l environnement appelant Une valeur constante est passée de l environnement appelant vers la procédure et une valeur différente peut être renvoyée à l environnement en utilisant le même paramètre. III.3. Appel d une procédure stockée Les procédures peuvent être appelées à partir de procédures stockées. Pour ce faire, il faut utiliser le nom de la procédure comme pour l'appel à partir de blocs anonymes. Exemple : DECLARE SOMME(10,12,S); DBMS_OUTPUT.PUT_LINE(S); III. Comparaison entre procédures et fonctions stockées Les procédures sont créées pour stocker une série d'actions à exécuter ultérieurement. Une procédure peut accepter ou non des paramètres, qui ne sont pas limités en nombre et peuvent être transférés du et vers l'environnement appelant. Une procédure ne retourne pas nécessairement une valeur. Les fonctions sont créées pour calculer une valeur, elles doivent retourner une valeur à l'environnement appelant. Une fonction peut accepter ou non des paramètres qui sont transmis de Wafa WALHA 4/5 ISET Tozeur

l'environnement. Une fonction ne peut retourner qu'une seule valeur et ne peut pas accepter de paramètre OUT ou IN OUT. Cependant si l'on en déclare il ne se produira pas d'erreurs de compilation mais il est conseillé de ne jamais en utiliser. Procédure S exécute comme une requête PL/SQL Pas de type de donnée RETURN Peut retourner une, aucune ou plusieurs valeurs Fonction Est appelé dans une expression Doit avoir un type de donnée RETURN Ne retourne qu une seule valeur Une procédure contenant un seul paramètre OUT peut être réécrite en tant que fonction en utilisant le paramètre OUT pour la valeur retournée. IV. Les avantages des procédures et fonctions stockées En plus d'apporter un développement modulaire des applications, les procédures et fonctions stockées ont d'autres avantages : Amélioration des performances Evite de repasser les lignes pour les différents utilisateurs en exploitant la zone SQL partagée. Evite le parcage PL/SQL à l'exécution en partant lors de la compilation. Réduit le nombre d'appels à la base de données et diminue le trafic réseau en envoyant les commandes par paquets. Amélioration de la maintenance Possibilité de modifier les routines on-line sans interférer avec les autres utilisateurs Possibilité de modifier une routine pour affecter toutes les applications Possibilité de modifier une seule routine pour éviter les tests en double Amélioration de l'intégrité et de la sécurité des données Contrôle indirect de l'accès aux objets de la base de données des utilisateurs ne possédant pas de privilèges de sécurité Assurance que les actions liées sont exécutées ensemble, ou pas du tout, en centralisant l'activité des tables liées. Wafa WALHA 5/5 ISET Tozeur