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 :

Comment attiendre le dernier enregistrement d´une table


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 39
    Par défaut Comment attiendre le dernier enregistrement d´une table
    Bonjour,

    Je cherche comment atteindre et recuperer les information du dernier enregistrement d´une table.

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Faut trier.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 39
    Par défaut
    Citation Envoyé par McM Voir le message
    Faut trier.
    j´ai pas bien compris, comment trier ?

    Est ce que ce code est faisable ou non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     declare c1 is select * from tab
    R c1%rowtype;
    beging
    open c1;
    while (c1%found) loop
     fetch c1 into R;
    end loop;
    close c1;
    end;

    a la sortie de la boucle tant que, on aura le dernier enregistrement de la table tab dans l´enregistrement R. ?

    est ce que ce code est faisable ou non.?

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Bien sur, c'est faisable, mais ce te donne le dernier enregistrement de la boucle.

    Rien ne garanti que l'ordre du curseur est fonction de l'ordre d'insertion dans la base.

    Sur Oracle, le "dernier enregistrement d´une table." ne veut rien dire si tu ne spécifie pas une colonne en particulier.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 39
    Par défaut
    Alors la solution est de faire un trie suivant la clé avant de commencer.

    Mais pouvez vous me dire comment faire un tri.

  6. #6
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Ex version PL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set serveroutput on;
     
    Declare
        Cursor C1 IS SELECT * FROM Ma_Table Order By Ma_Clef Desc;
        R C1%rowtype;
    Begin
     
        Open C1;
        Fetch C1 INTO R;
        Close C1;
     
        Dbms_output.put_line(R.Ma_Clef);
    end;
    /
    Ou ceci pourquoi pas version capilo tracté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Select * from ( Select  rownum No_Lig, B.* from ( 
                                                     Select * from Ma_Table Order By ma_clef desc
                                                    ) B 
                  ) A
    Where A.No_Lig = 1;

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut
    bonjour,
    la question que tu doit te poser :
    -Le dernier enregistrement par rapport a quoi, une date, un ordre d'insertion,etc..
    Ensuite comme le dit McM tu vas trié selon t'on besoin.

    Par contre parcourir toutes la table pour avoir le dernier n'est surement pas la bonne méthode (imagine 1 table avec des millions de lignes)

  8. #8
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 39
    Par défaut
    Citation Envoyé par c.langlet Voir le message
    bonjour,
    la question que tu doit te poser :
    -Le dernier enregistrement par rapport a quoi, une date, un ordre d'insertion,etc..
    Ensuite comme le dit McM tu vas trié selon t'on besoin.

    Par contre parcourir toutes la table pour avoir le dernier n'est surement pas la bonne méthode (imagine 1 table avec des millions de lignes)
    Vous avez raison, il faut tou d´abord introduire le probleme.

    Ici je suis entrain de recuperer le dernier enregistrement effectué dans la table P_HW, cette table contient les entrées en stock des imprimantes, chaque enregistrement de cette table contient le champs NB_P, qui represente le nombre de pieces livré.

    Ici commence la problematique : je veux recuperer le dernier enregistrement effectué dans la table P_HW et copier les champs de cette table dans la table PRINTER NB_P fois, car la table PRINTER contient les champs de la table P_HW, en ajoutant Le num de serie et l´@ ip...

Discussions similaires

  1. Comment connaître le dernier enregistrement d'une table?
    Par THOMAS Patrice dans le forum SQL
    Réponses: 6
    Dernier message: 11/05/2010, 12h53
  2. [C#/Oracle] Comment obtenir le dernier enregistrement d'une table ?
    Par heavydrinker dans le forum Accès aux données
    Réponses: 1
    Dernier message: 10/08/2006, 17h03
  3. Comment acceder au dernier enregistrement crée?
    Par Fredri dans le forum Access
    Réponses: 1
    Dernier message: 26/12/2005, 17h24
  4. comment rechercher les derniers enregistrement d'une table ?
    Par hornetboy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2005, 09h13
  5. Réponses: 2
    Dernier message: 18/08/2005, 12h42

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