IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

PL/SQL local subprograms


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 50
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    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
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    Steven Feuerstein a écrit récemment sur ce sujet dans "Write Tiny Little Chunks of Code - or Maybe Not"

  4. #4
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    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]).

Discussions similaires

  1. Travailler sur une base SQL locale à distance
    Par max180 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/09/2012, 15h15
  2. [phpMyAdmin] Soucis d'import de base sql local-> live
    Par Silv4 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 03/04/2012, 11h08
  3. Cube OLAP local avec SQL Server 2005 ??
    Par atom.hic dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/03/2006, 16h27
  4. Connexion a une base SQL dont le nom " Local (Windows N
    Par Mahmoud RAMMAL dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/02/2006, 09h45
  5. [debutant] acces SQL Server reseau local
    Par peyote dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/10/2005, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo