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

Discussion: Func parametrée Func

  1. #1
    Membre régulier
    Homme Profil pro
    etudiant
    Inscrit en
    mai 2010
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : mai 2010
    Messages : 222
    Points : 104
    Points
    104

    Par défaut Func parametrée Func

    Hello Guys ,
    J'ai un petit exo ou j'ai un petit soucis : programme PLSQL qui permet d’afficher un
    message précis suivant le choix de filière effectué via le clavier.
    Ainsi, si le choix saisi au clavier correspond à la lettre L, afficher :
    Vous avez opté pour la filière logistique!
    Si le choix correspond à la lettre M, afficher :
    Vous avez opté pour la filière marketing !
    Pour toute autre lettre saisie au clavier, afficher :
    Désolé ! Aucune formation proposée pour la filière spécifiée.
    Ce que j'ai fait

    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
    22
    Truncate table resultat;
    Accept nom prompt 'donnez le choix de votre filiere ';
    Declare
    V_mark varchar2(40):='M';
    V_Log varchar2(40):='L';
    Begin
    If &nom='M'
    	then		
    		insert into resultat 
    		values('&nom','est dans la filiere Marketing');
    elsif '&nom'='V_Log'
    	then		
    		insert into resultat 
    		values('&nom','est dans la filiere Logistique');
     
    	Else	
    		insert into resultat 
    		values('&nom','Désolé ! Aucune formation proposée pour la filière spécifiée.');	
    	end if;
    End;
    /
    Select * from resultat;
    Spirit Fighting .

  2. #2
    Membre éprouvé
    Homme Profil pro
    DBA Oracle
    Inscrit en
    avril 2013
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DBA Oracle
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : avril 2013
    Messages : 940
    Points : 1 027
    Points
    1 027

    Par défaut

    Et quel est le problème que tu constates?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Modérateur

    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    7 703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata

    Informations forums :
    Inscription : septembre 2008
    Messages : 7 703
    Points : 16 060
    Points
    16 060

    Par défaut

    Sans vous donnez la solution toute faite, voici quelques conseils.
    1. Utilisez set serveroutput on; avant votre bloc PL/SQL et la fonction put_line du package dbms_output pour afficher une sortie texte.
      Vous n'avez pas besoin d'écrire dans une table et de la lire, à moins que ça fasse parti de l'énoncé de votre exercice.
    2. Assignez le retour du prompt à une variable PL/SQL, et ensuite n'utilisez que cette variable.
    3. Vous pouvez changer vos déclarations de constantes de V_mark varchar2(40):='M'; vers v_mark constant varchar2(1) := 'M';Pas besoin de prévoir 40 caractères pour une valeur qui n'en prendra qu'un seul. Notez que ça ne change rien en terme de performance, c'est simplement pour rester logique.
    4. Utilisez bien ces deux constantes là où c'est justifié.
      Elles contiennent déjà du texte, vous n'avez pas besoin de chercher à les reconvertir.

  4. #4
    Membre régulier
    Homme Profil pro
    etudiant
    Inscrit en
    mai 2010
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : mai 2010
    Messages : 222
    Points : 104
    Points
    104

    Par défaut

    Bonjour ,
    C'est ce message que j'ai :

    Nom : Capture__OR.PNG
Affichages : 30
Taille : 26,2 Ko
    Spirit Fighting .

  5. #5
    Membre éprouvé
    Homme Profil pro
    DBA Oracle
    Inscrit en
    avril 2013
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DBA Oracle
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : avril 2013
    Messages : 940
    Points : 1 027
    Points
    1 027

    Par défaut

    J'ai l'impression que tu n'utilises pas correctement les variables de substitution.

    Ton code ne devrait pas être, une fois la substitution faite
    au lieu de
    ?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

Discussions similaires

  1. exp/imp DDL(TRIGGER,PROC,Func) via fichier plat
    Par Bat91 dans le forum Import/Export
    Réponses: 11
    Dernier message: 26/08/2010, 09h52
  2. Bind('<Bouton>', func) ne marche pas !
    Par Luke spywoker dans le forum Tkinter
    Réponses: 0
    Dernier message: 29/07/2010, 20h15
  3. Nom de la proc (ou func) courante
    Par peter27x dans le forum Débutant
    Réponses: 15
    Dernier message: 21/11/2009, 16h09
  4. Créer un object Func de façon dynamique
    Par Krustig dans le forum Windows Forms
    Réponses: 8
    Dernier message: 21/08/2009, 12h32
  5. int func (void)
    Par Gruik dans le forum C
    Réponses: 9
    Dernier message: 13/11/2006, 14h44

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