Fondements des bases de données Programmation en PL/SQL Oracle procédures, fonctions et exceptions

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

Bases de données avancées

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

Bases de Données Avancées PL/SQL

Corrigés détaillés des exercices

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

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

TP Contraintes - Triggers

Devoir Data WareHouse

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

Introduction au PL/SQL Oracle. Alexandre Meslé

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

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

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

A QUOI SERVENT LES BASES DE DONNÉES?

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

Vues: définition. Vues: avantages. Vues: inconvénients. Vues: exemple. Vues: syntaxe 08/12/2009

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

Administration des bases de données

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Oracle Le langage procédural PL/SQL

Quelques aspects du Relationnel-Objet du SGBD Oracle

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

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

SQL Historique

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Ora2Pg. Présentation, bonnes pratiques et futur du projet

Notes de cours : bases de données distribuées et repliquées

A QUOI SERVENT LES BASES DE DONNÉES?

Le Langage SQL version Oracle

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

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

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Présentation Windows Azure Hadoop Big Data - BI

PL langage de programmation côté serveur. SQL à la base : types, expressions, requêtes

PRÉAMBULE... 2 CRÉATION DE LA BASE DE DONNÉES...

Intégrité sémantique dans les bases de données relationnelles

Arbres binaires de recherche

Gestion des transactions et accès concurrents dans les bases de données relationnelles

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

Présentation du PL/SQL

Introduction aux Bases de Données 2004/2005

Auto-évaluation Oracle: cours de base

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Once the installation is complete, you can delete the temporary Zip files..

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Optimisation SQL. Quelques règles de bases

Hala Skaf-Molli. Nancy-Université 14 mai 2007

Langage SQL : créer et interroger une base

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

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

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

Historisation des données

Le langage procédural PL-PGSQL

Administration des bases de données. Jean-Yves Antoine

.NET - Classe de Log

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

Sécurité des applications web. Daniel Boteanu

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Cours SQL. Base du langage SQL et des bases de données

Systèmes de Gestion de Bases de Données

Bases de données et sites WEB

Gestion des utilisateurs et de leurs droits

France SMS+ MT Premium Description

Développement d applications avec les bases de données

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Paginer les données côté serveur, mettre en cache côté client

Bases de Données Réparties

Génie Logiciel avec Ada. 4 février 2013

1 Position du problème

Paris Airports - Web API Airports Path finding

Bases de Données Avancées

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Intégrité des données

Les bases fondamentales du langage Transact SQL

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Haka : un langage orienté réseaux et sécurité

BASES DE DONNEES TP POSTGRESQL

Mysql avec EasyPhp. 1 er mars 2006

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Le No.1 de l économie d énergie pour patinoires.

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

Bases de données. Mihaela Mathieu

Gestion de stock pour un magasin

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Le langage SQL Rappels

Compte-rendu technique complet et détaillé des cookies

Support de cours «SGBD»

CATALOGUE FORMATIONS DOMAINE Bases de données

CREATION WEB DYNAMIQUE

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer

Transcription:

Fondements des bases de données Programmation en PLSQL Oracle procédures, fonctions et exceptions Équipe pédagogique BD http:liris.cnrs.fr~mplantevdokudoku.php?id=lif10_2016a Version du 13 octobre 2016

Bloc anonyme ou nommé Un bloc anonyme PLSQL est un bloc......end comme dans les exemples précédents. On peut exécuter directement un bloc PLSQL anonyme. On passe plutôt une procédure ou une fonction nommée pour réutiliser le code.

Procédure sans paramètre Exemple CREATE OR REPLACE PROCEDURE list_nom_emps IS CURSOR c_nom_emps IS SELECT nom, a d r e s s e FROM emp ; FOR v_emp IN c_nom_emps LOOP dbms_output. p u t _ l i n e ( C l i e n t : UPPER( v_emp. nom) V i l l e : v_emp. a d r e s s e ) ; END LOOP; CALL list_nom_emps ( ) ;

Procédure avec paramètres Exemple CREATE OR REPLACE PROCEDURE liste_nom_emps ( v i l l e IN varchar2, v _ r e s u l t OUT number ) IS SELECT COUNT( ) INTO v _ r e s u l t FROM emp WHERE a d r e s s e LIKE ( % v i l l e % ) ; v _ r e s u l t number ; liste_nom_emps ( Manchester, v _ r e s u l t ) ; dbms_output. p u t _ l i n e ( v _ r e s u l t ) ; IN lecture seule OUT écriture seule IN OUT lecture et écriture

Fonctions sans paramètre Exemple CREATE OR REPLACE FUNCTION nb_emps RETURN NUMBER Type de r e t o u r IS i NUMBER; SELECT COUNT( ) INTO i FROM emp ; RETURN i ; dbms_output. p u t _ l i n e ( nb_emps ( ) ) ;

Fonctions avec paramètres Exemple CREATE OR REPLACE FUNCTION e u r o _ t o _ f r ( v_somme IN number ) RETURN NUMBER IS taux CONSTANT number := 6. 5 5 9 5 7 ; RETURN v_somme taux ; dbms_output. p u t _ l i n e ( e u r o _ t o _ f r ( 1 5. 2 4 ) ) ; Seuls les paramètres IN (en lecture seule) sont autorisés

Un peu plus... Les procédures et fonctions peuvent être utilisées dans d autres procédures ou fonctions ou dans des blocs PLSQL anonymes Les fonctions peuvent aussi être utilisées dans les requêtes Table système contenant les procédures et fonctions : user_source SELECT * FROM user_source Pratique Déclaration d une variable globale avec le préfixe «:» Description des paramètres : DESC nom_procedure Suppression de procédures ou fonctions : DROP PROCEDURE nom_procedure DROP FUNCTION nom_fonction DUAL est une pseudo table avec une seule colonne.

Les exceptions Une exception est une erreur qui survient durant une exécution, elle est soit : prédéfinie par Oracle, définie par le programmeur. Exceptions prédéfinies NO_DATA_FOUND quand SELECT...INTO ne retourne aucune ligne. TOO_MANY_ROWS quand SELECT...INTO retourne plusieurs lignes. VALUE_ERROR érreur numérique. ZERO_DIVIDE division par zéro OTHERS toutes erreurs non interceptées.

Traitement des exceptions Saisir une exception Une exception ne provoque pas nécessairement l arrêt du programme : elle peut être saisie par une partie EXCEPTION. Une exception non saisie remonte dans la procédure appelante (où elle peut être saisie). Exemple... EXCEPTION WHEN NO_DATA_FOUND THEN... WHEN TOO_MANY_ROWS THEN... WHEN OTHERS THEN o p t i o n n e l...

Exceptions utilisateur Elles doivent être déclarées avec le type EXCEPTION On les lève avec l instruction RAISE On peut aussi utiliser raise_application_error quand on veut que l exception remonte à l utilisateur (sans la saisir) Exemple e_custom EXCEPTION ; PRAGMA EXCEPTION_INIT ( e_custom, 20001 ) ; r a i s e _ a p p l i c a t i o n _ e r r o r ( 20001, My custom e r r o r ) ; RAISE e_custom ; EXCEPTION WHEN e_custom THEN dbms_output. p u t _ l i n e ( A custom e r r o r was e n c o u n t e r e d SQLCODE : SQLERRM ) ; WHEN OTHERS THEN dbms_output. p u t _ l i n e ( An e r r o r was e n c o u n t e r e d SQLCODE : SQLERRM ) ;

Exceptions utilisateur Exemple v _ s a l a i r e emp. s a l%type ; e_ trop_ bas EXCEPTION ; PRAGMA EXCEPTION_INIT ( e_trop_bas, 20001 ) ; SELECT s a l INTO v _ s a l a i r e FROM emp WHERE matr = 1 ; IF v _ s a l a i r e < 2000 THEN RAISE e_ trop_ bas ; END IF ; EXCEPTION WHEN e_ trop_ bas THEN dbms_output. p u t _ l i n e ( A custom e r r o r was e n c o u n t e r e d SQLCODE : s a l a i r e t r o p bas ) ; WHEN OTHERS THEN dbms_output. p u t _ l i n e ( An e r r o r was e n c o u n t e r e d SQLCODE : SQLERRM ) ;

Fin du cours.