Bonjour,
J'ai une base données de 471 tables et je souhaite afficher la liste des noms tables et le nombre de lignes de chaque table.
qui peut m'aider
Merci d'avance
Bonjour,
J'ai une base données de 471 tables et je souhaite afficher la liste des noms tables et le nombre de lignes de chaque table.
qui peut m'aider
Merci d'avance
Bonjour,
Je te propose de créer une requête qui génèrera les 471 select count(*) dans tes différentes tables.
En prenant comme hypothèse que ton SGBD reconnait les tables information_schema.
Voilà la requête pour SQL server, il faudra adapter notamment l'opérateur de concaténation.
Tu lances le script suivant:
Puis tu prends le résultat de la requête que tu executes à ton tour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select 'select '''+ table_name + ''' as nom_table, count(*) as nbre_ligne from ' + table_name +';' from information_schema.tables where table_name like '%TON_CRITERE%'
PS: Dans les règles du forum il est demandé de spécifier le SGbD, tu devrais nous le préciser, la réponse à ta question en dépend.
Cordialement
Soazig
Merci soazig pour cette réponse rapide mais ca n'a pas marché.
Au fait mon sgbdr est oracle 10g et j'ai appliqué la requête sur sql*plus.
Est ce normal que ca ne passe pas ?
Je ne sais pas si ORACLE 10 implémente les vues information_schema mais de mémoire sous oracle l'opérateur de concaténation est le double pipe ||, il faut donc remplacer mes + par des ||. ce qui donnerait :
Il faut aussi remplacer TON_CRITERE par quelque chose qui soit pertinent pour toi!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT 'select ''' || table_name || ''' as nom_table, count(*) as nbre_ligne from ' || table_name ||';' FROM information_schema.TABLES WHERE table_name LIKE '%TON_CRITERE%';
Et franchement ça n'a pas marché n'aide pas la résolution du problème, qu'as tu obtenu?
Un message d'erreur? si oui lequel un résultat vide.
A+
Soazig
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT 'select ''' || object_name || ''' as nom_table, count(*) as nbre_ligne from ' || object_name || ';' FROM all_objects WHERE owner = USER AND object_type = 'TABLE' AND object_name LIKE '%MA_SELECTION%';
Signé : Capitaine Jean-Luc Picard
C'est presque pareil
Et cadeau : le resultat à executer en une seule requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT 'select ''' || object_name || ''' as nom_table, count(*) as nbre_ligne from ' || object_name || ';' FROM user_objects WHERE object_type = 'TABLE' AND object_name LIKE '%MA_SELECTION%';
On ajoute UNION à la fin de chaque select sauf sur le dernier ou c'est un point virgule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT 'select ''' || object_name || ''' as nom_table, count(*) as nbre_ligne from ' || object_name || decode ( rownum , sign(row_number() over(ORDER BY rownum DESC ) - rownum) , ';' , ' UNION') FROM user_objects WHERE object_type = 'TABLE' AND object_name LIKE '%MA_SELECTION%'
Signé : Capitaine Jean-Luc Picard
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager