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 :

un vide dans ma table ?


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut un vide dans ma table ?
    bonjour les amis

    j ai Créer un bloc PL/SQL qui détermine les employés ayant les salaires les plus élevés , et Dans une boucle,j ai récupérez les noms et salaires des personnes les mieux rémunérées dans la table EMP. puis j ai Enregistrez les noms et salaires dans la table TOP_DOGS que j ai déjà créé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    create table top_dogs(
        name varchar2(10),
        salary number(11,2));


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    SQL> accept &n prompt 'entrez le nombre des employes les mieux rémunérés:
    entrez le nombre des employés les mieux rémunérés:8
    SQL> declare
      2      cursor c_sal is select ename,sal from emp order by sal desc;
      3      salaire emp.sal%type;
      4      nom emp.ename%type;
      5      nbr number(5) ;
      6      begin
      7      open c_sal;
      8      select count(*) into nbr from emp;
      9      for i in 1..&n loop
     10      if(&n<>0 and &n<nbr) then
     11      fetch c_sal into nom,salaire;
     12      insert into top_dogs values(nom,salaire);
     13      end if;
     14     end loop;
     15     close c_sal;
     16     end;
     17     /
    ancien   9 :     for i in 1..&n loop
    nouveau   9 :     for i in 1..7 loop
    ancien  10 :     if(&n<>0 and &n<nbr) then
    nouveau  10 :     if(7<>0 and 7<nbr) then
     
    ProcÚdure PL/SQL terminÚe avec succÞs.
     
    SQL> select * from top_dogs;
     
    NAME           SALARY
    ---------- ----------
     
     
     
     
     
     
     
     
     
     
     
     
    NAME           SALARY
    ---------- ----------
     
    JAMES
    youne
    younes
    king             5000
    FORD             3000
    SCOTT            3000
    JONES            2975
     
    19 ligne(s) sÚlectionnÚe(s).
    1)je sais pas pourquoi dans la boucle il ya
    ancien 9 : for i in 1..&n loop
    nouveau 9 : for i in 1..7 loop
    alors que moi j ai tapez 8 pour la variable de substitution &n;
    2)un autre problème dans l'affichage la premier partie est vide en plus il me renvoi 19 ligne au lieu de 8 lignes

    merci pour votre soutien .

  2. #2
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    Bonjour,

    pourquoi ne fais-tu pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    define nbr=&1;
    insert into top_dogs
    select ename, sal from (select ename,sal from emp where order by sal desc) where rownum <= &nbr;

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Par défaut
    bonsoir Z3phur
    oui pourquoi pas, mais comme je suis débutant en plsql je test les curseurs pour savoir comment ça marche, alors ça sera sympa si tu m explique se que je dois modifier dans mon bloc pour ajouter ton code

  4. #4
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    En fin de compte ici le code que je t'ai donné c'est du sql.

    tu le code dans un fichier .sql et tu lances ce fichier de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sqlplus toto/toto
    @monfichier.sql 8

  5. #5
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    C'est
    et non
    Cordialement,
    Franck.

Discussions similaires

  1. Réponses: 13
    Dernier message: 20/06/2007, 16h55
  2. Test evenement sur champ vide dans une table
    Par eddyG dans le forum Access
    Réponses: 3
    Dernier message: 30/05/2006, 17h02
  3. Réponses: 3
    Dernier message: 11/05/2006, 00h27
  4. supprimer un enregistrement vide dans une table oracle
    Par shurized dans le forum Bases de données
    Réponses: 11
    Dernier message: 07/09/2004, 16h55
  5. Update de date vide dans une table
    Par gidebo dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2004, 16h48

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