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

SQL Oracle Discussion :

Requête pour calculer le nombre de ligne


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 56
    Points
    56
    Par défaut Requête pour calculer le nombre de ligne
    Bonjour,
    J'ai une requete qui me calcule la taille de toutes mes tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT owner , segment_type , segment_name , sum(bytes)/1024 
    FROM sys.dba_extents
    GROUP BY owner, segment_type, segment_name
    ORDER BY owner, segment_type, segment_name;
    Je souhaite ameliorer cette requete pour avoir avoir aussi le nombre de ligne pour chaque table.
    J'ai mis ceci mais ca me retourne pas le nombre exact de ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT owner , segment_type , segment_name , sum(bytes)/1024, count(*) 
    FROM sys.dba_extents
    GROUP BY owner, segment_type, segment_name
    ORDER BY owner, segment_type, segment_name;
    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 61
    Points : 57
    Points
    57
    Par défaut
    Le problème est que ton count(*) compte le nombre de ligne de la table dba_extents pas celui de la table listée.
    Je ne connais pas de moyen par les vues catalogue pour connaitre le nombre de ligne actuel d'une table. Il y a bien le champ NUM_ROWS de DBA_tables mais ça donne le nombre de lignes à la dernière analyse statistique donc pas forcément le plus à jour je pense.
    La seule solution que je verrais est de coupler ta requête en tant que curseur avec une requête dynamique type "select count(*) from " || segment_name
    Mais il faut alors inclure cela dans un bloc pl/sql et renvoyer un résultat soit en utilisant l'affichage console (dbms_output) soit en remplissant une table temporaire.
    En fait tout dépend de ce que tu comptes faire du résultat, si c'est juste pour affichage dans sql+, je peux te faire le bloc pl/sql.

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

Discussions similaires

  1. Requête pour calculer le nombre de minutes
    Par Baleze dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/12/2012, 11h24
  2. Requête pour compter le nombre de lignes d'une procédure stockée?
    Par toutounesan dans le forum Développement
    Réponses: 13
    Dernier message: 06/06/2012, 12h59
  3. Réponses: 3
    Dernier message: 25/01/2011, 17h04
  4. [AC-2000] Création d'une requête pour compter le nombre de ok dans une ligne
    Par yassine06 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/05/2010, 16h10
  5. requête pour calculs sur lignes et classement
    Par GrandDeb dans le forum Requêtes
    Réponses: 9
    Dernier message: 11/05/2009, 11h01

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