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 :

Problème sur curseur


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Points : 85
    Points
    85
    Par défaut Problème sur curseur
    Bonjour tlm,

    J'aurais besoin d'un petit coup de main pour débugger ma procédure avant que je m'arrache les derniers cheveux qui me restent sur la tete

    j'ai l'erreur (fou_num doit etre déclaré) à la ligne 60 soit à mon troisième curseur
    FOR vir IN cuPiece(ver.fou_num) loop
    J'avais eu la meme erreur dans le curseur au dessus mais je me rappelle plus comment j'avais fait pour résoudre >.< le pire c'est que je sais que c'est un truc a deux balles mais je me rappelle plus

    c'est une procèdure qui est sensé recevoir donc le numèro de client et ramener toutes les réparations concernant ce client la voiture concerné les pièces concernant la réparation chaque réparation groupées par fournisseur.
    Un peu comme sa:

    Le nom du client

    le Num de la réparation --- le véhicule concerné
    fournisseur concernant cette réparation
    les pièces par fournisseur concernant cette réparation

    le Num de la réparation --- le véhicule concerné
    fournisseur concernant cette réparation
    les pièces par fournisseur concernant cette réparation

    Je vous remercie d'avance
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    create or replace procedure maProcedure(pNumClient in client.cli_num%type) as
     
    --curseurs
    cursor cuRepVeh is 
      select rep_num, veh_marque, veh_modele
      from reparation, vehicule
      where reparation.rep_veh_num_imm = vehicule.veh_num_imm
      and vehicule.veh_cli_num = pNumClient ;
     
    cursor cuFournisseur(pRepNum in reparation.rep_num%type) is
      select Fou_nom
      from fournisseur, client, vehicule, reparation, est_utilise, piece, fourni
      where pRepNum = reparation.rep_num
      and   reparation.rep_veh_num_imm = vehicule.veh_num_imm
      and   client.cli_num = vehicule.veh_cli_num
      and   fournisseur.fou_num = fourni.for_fou_num
      and   piece.pie_num = fourni.for_pie_num
      and   piece.pie_num = est_utilise.est_pie_num
      and   reparation.rep_num = est_utilise.est_rep_num
      order by fou_nom;
     
    cursor cuPiece(pFournisseur in fournisseur.fou_num%type) is
      select Pie_design, pie_prix_unit
      from piece, fournisseur, fourni
      where pFournisseur = fournisseur.fou_num
      and   piece.pie_num = fourni.for_pie_num
      and   fournisseur.fou_num = fourni.for_fou_num
      order by piece.pie_prix_unit;
     
    --Variables
     
     vCli_Nom        client.cli_nom%type;
     vCli_prenom     client.cli_prenom%type;
     vCli_Num_Tel    client.cli_num_tel%type;
     vAss_Nom        assurance.ass_nom%type;
     
    --exceptions
    eAucunePiece exception;
    eAucunFournisseur exception;
    --ajouter une autre exception
     
    begin
     
    select cli_nom, cli_prenom, cli_num_tel, ass_nom
      into vCli_Nom, vCli_prenom, vCli_Num_Tel, vAss_Nom
      from client, assurance
      where client.cli_num = pNumClient
      and client.cli_ass_code = assurance.ass_code;
     
    dbms_output.put_line('Prenom Nom      '||vCli_nom||' '||vCli_prenom);
    dbms_output.put_line('Num Téléphone   '||vCli_Num_Tel);
    dbms_output.put_line('Assurance       '||vAss_Nom);
     
    for var in cuRepVeh loop
          dbms_output.put_line('Num réparation  '||var.Rep_Num);
          dbms_output.put_line('Véhicule        '||var.Veh_Marque||' '||var.Veh_Modele);
          dbms_output.new_line;
          for ver in cuFournisseur(var.rep_num) loop
              dbms_output.put_line(ver.fou_nom);
              for vir in cuPiece(ver.fou_num) loop
     
                  dbms_output.put_line(vir.Pie_design||' '||vir.pie_prix_unit);
              end loop; 
          end loop;
    END LOOP;
    END maProcedure;

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 67
    Points : 85
    Points
    85
    Par défaut
    bon j'ai trouvé mon curseur cuFournisseur ne ramenait pas l'attribut fou_num

    merci quand même a ceux qui ont pris le temps de regarder

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

Discussions similaires

  1. Problème de Curseur sur une Collection
    Par mrugala dans le forum PL/SQL
    Réponses: 3
    Dernier message: 26/10/2009, 11h49
  2. Problème sur un curseur
    Par jolio2006 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 20/11/2008, 20h51
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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