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

SQL Oracle Discussion :

Gérer les exceptions dans un package


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Gérer les exceptions dans un package
    Bonjour tout le monde,
    Je suis en train de faire un gros package qui gère les utilisateurs.
    Dans le body, j'ai plusieurs procédure, avec des exceptions dans chaque procédure. Par exemple dans mon body j'ai cette procedure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PROCEDURE add_user (newUser VARCHAR2, mdpUser VARCHAR2) IS
    quest_user VARCHAR2(100) := 'CREATE USER ' || newUser || ' IDENTIFIED BY ' || mdpUser;
    createuser EXCEPTION;
    PRAGMA EXCEPTION_INIT(createuser, -01031);
    BEGIN
    EXECUTE IMMEDIATE quest_user;
    --Exceptions
    EXCEPTION
    WHEN createuser THEN
    dbms_output.put_line('Privilèges insuffisants');
    END add_user;
    Et donc en fait je voudrais avoir une procédure dans mon package, qui ne fait que gérer les procédures, par exemple, au lieu d'avoir la procédure précédente, j'aurais quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROCEDURE add_user (newUser VARCHAR2, mdpUser VARCHAR2) IS
    quest_user VARCHAR2(100) := 'CREATE USER ' || newUser || ' IDENTIFIED BY ' || mdpUser;
    BEGIN
    EXECUTE IMMEDIATE quest_user;
    --Appel d'une procédure du package pour la gestion des erreurs.
    EXECUTE procedure_erreur;
    END add_user;
    Tout ceci dans le but de rendre mes différentes procédure de gestion d'utilisateur de mon package plus lisible.

    Est-ce que vous auriez une idée de comment faire? Si c'est possible déja...
    Voila, merci

  2. #2
    Membre éclairé

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Par défaut
    Avec une telle syntaxe, ce ne sera pas possible.
    Quoi qu’il arrive, tu devras écrire un bloc EXCEPTION puisque en cas de problème, c’est la dedans que tu aboutis.
    En revanche, ce code d’exception peut très bien faire appel à une fonction ou procédure maison pour faire … ce que tu veux.

    Tu obtiendras alors un code qui aura cette tête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    PROCEDURE add_user (newUser VARCHAR2, mdpUser VARCHAR2) IS
    quest_user VARCHAR2(100) := 'CREATE USER ' || newUser || ' IDENTIFIED BY ' || mdpUser;
    BEGIN
    EXECUTE IMMEDIATE quest_user;
    --Appel d'une procédure du package pour la gestion des erreurs.
    EXCEPTION
    WHEN others THEN
        ma_procedure_de_gestion_des_exceptions(Elt1, Elt2, ...);
    END add_user;
    Chris.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci de votre réponse.
    En effet, moi je ne voulais pas de bloc EXCEPTION ( je pensais à une sorte de include(...) (en php))
    Je vais donc utiliser ce que vous m'avez montré.

Discussions similaires

  1. Gérer les exceptions dans un thread
    Par Pynouz dans le forum C#
    Réponses: 5
    Dernier message: 06/10/2011, 12h29
  2. Gérer les exceptions dans le web.config
    Par Maestro57 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/11/2009, 20h37
  3. Réponses: 3
    Dernier message: 29/05/2007, 16h50
  4. [C#/SQL] Comment gérer les exceptions d'une Procédure stockée ?
    Par thomas_strass dans le forum Accès aux données
    Réponses: 10
    Dernier message: 06/07/2005, 10h40
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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