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 :

[oracle 9i] aide pour une requete


Sujet :

Oracle

  1. #1
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Points : 126
    Points
    126
    Par défaut [oracle 9i] aide pour une requete


    j'ai une table qui n'a qu'une seule colonne (une table tmp au milieu d'un traitement en pl/sql) :

    MAG_ID
    ------
    0430
    0435
    0429
    0509
    0630
    par exemple
    ce que je veux obtenir c'est une ligne à la fois, selon un compteur par exemple, (sachant que le nombre de ligne est connu por moi)

    je me demande si c'est possible, ou pas, ou faut il encore cree un index, ou ....
    éclairé ma lanterne svp
    merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut Re: [oracle 9i] aide pour une requete
    Un curseur ne fait pas l'affaire ?

  3. #3
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Points : 126
    Points
    126
    Par défaut
    en fait se qui m'interesse le plus c'est que la requete mache comme j'ai deja explique tu vois , qu ece soit par curseur ou par table, ca reviens en même non (pour la requete) :

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Un curseur et une table ce n'est pas la même chose :

    Un exemple simpliste :
    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
     
    SQL> create table dvp ( sal number ) ; 
     
    Table créée.
     
    SQL>  insert into dvp values (0430 );
     
    1 ligne créée.
     
    SQL>  insert into dvp values (0435 );
     
    1 ligne créée.
     
    SQL>  insert into dvp values (0429 );
     
    1 ligne créée.
     
    SQL>  insert into dvp values (0509 );
     
    1 ligne créée.
     
    SQL>  insert into dvp values (0630 ) ; 
     
    1 ligne créée.
     
    SQL> commit ;
     
    SQL> select * from dvp ; 
     
           SAL
    ----------
           430
           435
           429
           509
           630
     
    SQL> 
    SQL> DECLARE
      2  var number ; 
      3    CURSOR curseur1 
      4        IS SELECT  sal from dvp  ;
      5  BEGIN
      6      OPEN curseur1 ;
      7       LOOP
      8         FETCH curseur1 INTO var ;
      9         dbms_output.put_line (var+ 1000 ) ; 
     10         EXIT WHEN curseur1%NOTFOUND;
     11      END LOOP;
     12  END;
     13  
     14  /
    1430
    1435
    1429
    1509
    1630
    1630
     
    Procédure PL/SQL terminée avec succès.
     
    SQL>

  5. #5
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Points : 126
    Points
    126
    Par défaut
    merci Jaouad, tu viens de me faire comprendre cela .

    sinon il y a aussi les tableaux, je peux les utilise dans mon cas actuel (au lieu de faire une requete, pour avoir une ligne a la fois) je ferai un tableau (dynamique) qui contiendra mes valeurs et je n'aurai qu'à les recupere

    sinon un gran merci pour tous Jaouad

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Jaouad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL>DECLARE
      2  var number ; 
      3    CURSOR curseur1 
      4        IS SELECT  sal from dvp  ;
      5  BEGIN
      6      OPEN curseur1 ;
      7       LOOP
      8         FETCH curseur1 INTO var ;
      9         dbms_output.put_line (var+ 1000 ) ; 
     10         EXIT WHEN curseur1%NOTFOUND;
     11      END LOOP;
     12  END;
    Je préfère les FOR LOOP que les FETCH pour 2 raisons :
    1/ En cas d'erreur le Curseur est fermé (j'avais lu ça dans le forum)
    2/ Tu n'as pas à gérer la sortie, et ça ne t'entraine pas des doublons comme le cas ci dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE
      2  var number ; 
      3    CURSOR curseur1 
      4        IS SELECT  sal from dvp  ;
      5  BEGIN
      6      FOR r IN curseur1 LOOP
      9         dbms_output.put_line (r.sal + 1000 ) ; 
     10     END LOOP;
     11  END;

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Jejam n'oublie pas le tag résolu
    Mcm C'était un exemple simpliste juste pour la compréhension

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

Discussions similaires

  1. Besoin d'aide pour une requete
    Par jnc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 12h54
  2. aide pour une requete
    Par graphicsxp dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/03/2005, 16h02
  3. Aide pour une requete SQL
    Par hpghost dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/01/2005, 16h01
  4. Aide pour une requete SQL
    Par hpghost dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 08/01/2005, 11h15
  5. Aide pour une requete ... "COUNT(*)"
    Par mechantebestiole dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/05/2004, 17h27

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