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

Oracle Discussion :

[Oracle 8i - PL/SQL] Utilisation des exceptions


Sujet :

Oracle

  1. #1
    Membre régulier Avatar de Bahan
    Inscrit en
    Avril 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2006
    Messages : 147
    Points : 88
    Points
    88
    Par défaut [Oracle 8i - PL/SQL] Utilisation des exceptions
    Bonjour à toutes et à tous.

    Je dois avouer que je galère complètement au niveau des exceptions en PL/SQL.

    1. Quand dois-je en lever une ? Seulement lors d'une erreur SQL ? Si je crée tout un panel de fonctions booleennes qui testent differentes choses sur plusieurs infos, dois-je créer des exceptions pour chaque retour FALSE ?

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    vCrFonction1 := MaFonction1(MonParam1, MonParam2);
    IF(vCrFonction1 = FALSE)
        RAISE ErrFonction1;
    END IF;
     
    vCrFonction2 := MaFonction2(MonParam3, MonParam4);
    IF(vCrFonction2 = FALSE)
        RAISE ErrFonction2;
    END IF;
    2. Si j'ai une fonction qui retourne un booleen et que j'ai n exceptions qui doivent toutes me retourner FALSE mais agissent différemment par exemple au niveau log, est-il possible de factoriser la ligne RETURN FALSE pour toutes les exceptions ?

    3. Comment utiliser WHEN OTHERS ? Comme une sortie d'erreur clef en main d'une fonction ? Genre "s'il y a la moindre exception SQL, quelqu'elle soit, alors je retourne FALSE".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHEN OTHERS
        THEN
            RETURN FALSE;
    Sorry, j'ai un peu de mal là

    Bahan
    Bats-toi de toutes tes forces tant que tu es en vie, et n'abandonne que quand tu es mort

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Le principe des exceptions est de récupérer automatiquement la main dans la procédure appelante et ne dois donc pas tester la valeur de retour de la procédure / fonction appelée.

    J'ai du mal à comprendre comment vous comptez vous servir des exceptions.
    Savez-vous à quoi ça sert et surtout comment on s'en sert (cf la doc oracle si ce n'est pas le cas).

    Concernant "WHEN OTHERS" alors effectivement vous allez capturer toutes les exceptions rencontrées mais cette technique est à double tranchant.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Membre régulier Avatar de Bahan
    Inscrit en
    Avril 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2006
    Messages : 147
    Points : 88
    Points
    88
    Par défaut
    Oui, je crois que je vais aller me documenter dans la doc Oracle, car je suis complètement perdu à ce sujet, dans le sens où je ne sais absolument pas quand est-ce qu'il faut que je me serve des exceptions Oracle.

    Car je ne souhaite pas en utiliser trop dont certaines ne serviraient à rien, mais je souhaite en utiliser assez pour ne pas avoir de sorties intempestives de mon programme.

    Merci de votre réponse.

    Bahan
    Bats-toi de toutes tes forces tant que tu es en vie, et n'abandonne que quand tu es mort

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Pour vous aider à comprendre leur fonctionnement :
    http://sheikyerbouti.developpez.com/...age=Chap1#L1.3
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle 8i][PL/SQL] requetes, SQLERRM & EXCEPTION
    Par Bahan dans le forum Oracle
    Réponses: 5
    Dernier message: 04/10/2007, 17h11
  2. [oracle 8i] [PL/SQL] Pb sur exception
    Par Titouf dans le forum Oracle
    Réponses: 11
    Dernier message: 21/09/2006, 08h46
  3. [SQL] Utilisation des opérateurs SQL plutôt que PHP
    Par php_newbie dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/05/2006, 11h38
  4. [Exception] de l'utilisation des exceptions...
    Par Alec6 dans le forum Général Java
    Réponses: 7
    Dernier message: 16/09/2005, 17h53

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