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 :

[Oracle8i][PL/SQL] CASE ou pas CASE


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Par défaut [Oracle8i][PL/SQL] CASE ou pas CASE
    Bonjour,

    A chaque fois que je veux utiliser un case en PL/SQL... J'ai le même message à la compilation...

    PLS-00103: Encountered the symbol "CASE" when expecting one of the following:

    begin declare end exception exit for goto if loop mod null
    Pourtant il me semble que mon coding est correct:

    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
    CREATE PROC 
    ..
    BEGIN
    ..
         CASE TYPE_PERSONNE
         WHEN 'CLIENT' THEN
                   w_personne := NOM_CLIENT;
         WHEN 'VENDEUR' THEN
      	  w_personne := NOM_VENDEUR;
      ELSE 
      	  w_personne := NULL;
      END CASE;
    ..
    EXCEPTION
    ..
    END;
    Je vous remercie d'avance pour votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Ton CASE semble correct !!!

    Par contre, vérifie le reste de ton PL, car l'erreur ne vient pas forcément de ton CASE.

  3. #3
    Membre confirmé Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Par défaut
    Tu es sur que ça ne vient pas de la version d'oracle?

  4. #4
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Peut etre aussi !! je ne sais pas depuis quelle version on peut utiliser le CASE !!!

  5. #5
    Membre confirmé Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Par défaut
    Car si j'enlève le case tout marche nickel...
    Et quand je le rajoute... et bien voilà... tout est KC...

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Si tu mets ton CASE en commentaire, est-ce que ton PL génère une erreur ?

    OK

    Fait une recherche sur la doc Oracle 8, si tu es en 8, et voit si tu trouves le CASE !

    Essaye de retirer ton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ELSE 
      	  w_personne := NULL;
    Car, il doit pas aimer le NULL !!!

    In a simple CASE expression, Oracle searches for the first WHEN ... THEN pair for which expr is equal to comparison_expr and returns return_expr. If none of the WHEN ... THEN pairs meet this condition, and an ELSE clause exists, then Oracle returns else_expr. Otherwise, Oracle returns null. You cannot specify the literal NULL for all the return_exprs and the else_expr.

  7. #7
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Bug 899373 : PL/SQL n'utilise pas CASE dans les versions 8.1.x
    pour résoudre ton problème, il faut utiliser EXECUTE IMMEDIATE

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

Discussions similaires

  1. Ajout "case of pas" en sql
    Par L0007 dans le forum Débutez
    Réponses: 2
    Dernier message: 01/12/2010, 14h30
  2. Erreur sql, mauvais emploi de 'case' dans sql ?
    Par gapse dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/12/2008, 10h04
  3. SQL pour le YESNO case à cocher
    Par Xavier3131 dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/05/2008, 11h30
  4. [SQL Server] recherche conditionnée CASE?
    Par vavou dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/08/2006, 11h18
  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