Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2011, 10h17   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 44
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 44
Points : 3
Points : 3
Par défaut PL/SQL local subprograms

bonjour,

pouvez vous m'aider à comprendre l'utilité d'utiliser des "local subprograms"?

c'est à dire comme cet exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE OR REPLACE PROCEDURE Xyz_P1 IS
 
   FUNCTION xyz_f1(p_i IN NUMBER) IS
   BEGIN
        INSERT INTO libelle VALUES (p_i );
   END;
 
      PROCEDURE xyz_f2(p_j IN NUMBER) IS
   BEGIN
     INSERT INTO libelle VALUES (p_j );
   END;
 
   v_k NUMBER := 6;
   BEGIN
 
   INSERT INTO libelle VALUES (v_k);
   xyz_f1(1);
      xyz_f2(3);
 
	 END;
/
d'autres part j'aime bien comprendre les avantages et les inconvénients de l'utilisation des local subprogram, package.

Merci.
yasstunisien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 10h39   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
Dans l'exemple présenté, l'emploi de sous-programmes locaux n'a pas réellement d'intérêt...
Dans la réalité d'un développement, on utilisera un sous-programme local pour factoriser une opération, c'est à dire écrire une seule fois une portion de code qui sera utilisée à plusieurs endroits du programme.
Cela n'est pas propre à PL/SQL mais relève des bonnes pratiques de programmation à mettre en oeuvre quel que soit le langage utilisé, s'il le permet.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h59   #3
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 810
Points : 5 810
Steven Feuerstein a écrit récemment sur ce sujet dans "Write Tiny Little Chunks of Code - or Maybe Not"
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 14h43   #4
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 37
Points : 37
Citation:
Envoyé par al1_24 Voir le message
Dans la réalité d'un développement, on utilisera un sous-programme local pour factoriser une opération, c'est à dire écrire une seule fois une portion de code qui sera utilisée à plusieurs endroits du programme.
Les sous-programmes peuvent être utiles aussi pour améliorer la lisibilité du code, en réalisant une opération métier ou technique par sous-programmes. Ensuite, un appel de sous-programmes du type

fonction1
fonction2
fonction3

où les fonctions (ou proc) auront un nom parlant sera plus lisible que

boucle 1
différentes opérations
....
...
fin boucle 1
si cond alors
...
...
fin si
bla
bla
bla

La granularité ne doit pas être la ligne d'instruction mais l'unité logique.


Un autre avantage des sous-programmes privés est d'utiliser les sous-programmes publics comme garde (contrôle de cohérence, des paramètres) et d'avoir les sous-programmes privés plus propres, sans ces contrôles, et centrés sur les opérations à effectuer.

Dans certains langages (pas en PL/SQL), ça peut aussi servir à gérer les accès concurrents dans l'API publique (cf [url]http://www1.cse.wustl.edu/~schmidt/POSA/POSA2/[url]).
Cincinnatus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h09.


 
 
 
 
Partenaires

Hébergement Web