Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/08/2011, 16h33   #1
Invité de passage
 
Inscription : février 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 32
Points : 1
Points : 1
Par défaut requete sql pour afficher toutes les tables non vides dans une base oracle

Bonjour,
Je suis à la recherche d'une requette qui m'affiche sur une base oracle la liste des tables mais seulement les tables qui ne sont pas vides, les tables qui contiennent des donées.
J'ai besoin de cette requette parce que je travaille sur une application qui contient des milliers des tables.
Cordialement
toga222 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 16h37   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Si les stats sont à jour, ce qui devrait être le cas :
Code :
SELECT * FROM all_tables WHERE num_rows>0
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 17h03   #3
Invité de passage
 
Inscription : février 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 32
Points : 1
Points : 1
Merci pour votre reponse, mais cette requette m'affiche les tables systemes avec DATA_R2PA_D et des truc que je ne comprens pas.
Est-ce qu'il n'ya pas un moyen d'afficher justes les tables de ma base de données.

Cordialemen,t
Toga222
toga222 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 17h15   #4
Membre expérimenté
 
Homme Mohamed Houri
Inscription : mars 2010
Messages : 286
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Houri
Localisation : France

Informations forums :
Inscription : mars 2010
Messages : 286
Points : 563
Points : 563
Citation:
Envoyé par toga222 Voir le message
Merci pour votre reponse, mais cette requette m'affiche les tables systemes avec DATA_R2PA_D et des truc que je ne comprens pas.
Est-ce qu'il n'ya pas un moyen d'afficher justes les tables de ma base de données.

Cordialemen,t
Toga222
Code :
1
2
 
SELECT * FROM user_tables WHERE num_rows>0;
Avec comme mentioné plus haut les statistiques à jour. Sinon voir exemple ci-dessous

Code :
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
 
houri.world > DROP TABLE t purge;
 
TABLE dropped.
 
mhouri.world > CREATE TABLE t (n number);
 
TABLE created.
 
mhouri.world > SELECT count(1) FROM t;
         0
 
mhouri.world > SELECT table_name, num_rows
  2  FROM user_tables
  3  WHERE table_name = 'T'
  4  AND num_rows = 0;
 
no rows selected
 
mhouri.world > exec dbms_stats.gather_table_stats(user, 't');
 
PL/SQL procedure successfully completed.
 
mhouri.world > SELECT table_name, num_rows
  2  FROM user_tables
  3  WHERE table_name = 'T'
  4  AND num_rows = 0;
T                                       0
Mohamed.Houri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 17h19   #5
Invité de passage
 
Inscription : février 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 32
Points : 1
Points : 1
Merci encore une fois pour votre reponse.
J'ai trouvé la solution c'est:
SELECT * FROM ALL_tables where owner='NOM_BASE'
toga222 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h41.


 
 
 
 
Partenaires

Hébergement Web