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 :

CASE WHEN <> SWITCH CASE (c) ?


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 70
    Points
    70
    Par défaut CASE WHEN <> SWITCH CASE (c) ?
    Bonjour.

    Je dois faire un traitement un peu particulier qui consiste a faire une série de test selon un diagramme établi pour faire un insert dans telle ou telle table.

    A chaque série de test, je pensais donner à une variable un N° précis.
    Avec ce numéro , un simple Case When pour faire els insert.

    Pour mieux m'expliquer, je prends un exemple :
    Si x <= 1 --> insérer dans table 1
    Si x >1 -- > 2eme test
    2eme test : Si y <= 1 --> insérer dans table 1 et 2
    Si z >1 -- > 3eme test
    3eme test : Si y <= 1 --> insérer dans table 1 , 2 et 3
    Si z >1 -- > 4eme test

    etc etc.

    Donc pour simplifier le code, je pensais donner après chaque test une valeur à la variable et faire ensuite un Case When (comme le switch case en C)
    Cependant, en C, si on ne met le Break, les case sont à la queue leu leu.

    switch (ln_variable)
    {
    case : 4 : insert table 1;
    case : 3 : insert table 2;
    case : 2 : insert table 3;
    case : 1 : insert table 4;
    }

    si on prend le 3, on fera donc bien 3 insert car sans le break, on exécute le code suivant jusqu'au break

    La question est la suivante : est-il possible de faire la meme chose en Plsql ?
    Cela pour éviter d'avoir des If elsif else en cascade car je vais avoir beaucoup de test à faire

  2. #2
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Bonjour,

    Le CASE oracle effectue 1 seule instruction puis quitte la structure.

    Pour plus d'informations :

    http://sheikyerbouti.developpez.com/...=Chap1#L1.2.12

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    C'est bien ce que je craignais.

    Dommage, ca m'aurait beaucoup simplifier la vie.

    Merci pour la réponse

  4. #4
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Regardez si le insert multi-table ne peut pas vous aider.

Discussions similaires

  1. switch ou case/when?
    Par Cupidon dans le forum Access
    Réponses: 10
    Dernier message: 16/06/2006, 15h39
  2. Pb avec case when !
    Par Brice Yao dans le forum Langage SQL
    Réponses: 11
    Dernier message: 05/08/2005, 08h20
  3. [Language] aide sur les switch case
    Par pouss dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2005, 11h34
  4. Structure CASE WHEN en Interbase
    Par tchaman dans le forum InterBase
    Réponses: 8
    Dernier message: 13/12/2004, 16h18
  5. [SQL] performances Decode ou Case when ?
    Par Yorglaa dans le forum Oracle
    Réponses: 8
    Dernier message: 01/10/2004, 15h50

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