Comme MySQL a "SHOW TABLES", comment comptez-vous les tables dans Oracle DB. Un peu de recherche m'a donné cette requête:
select owner, count(*) from dba_tables
Donc, comme MySQL a une commande standard, Oracle en a-t-elle une?
Oui, bien sûr, votre requête fonctionnera, il suffit de la modifier un peu. Regardez ici pour la réfrence: http://download.Oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091
Lance ça:
SELECT TABLE_NAME FROM DBA_TABLES;
pour obtenir la liste des tableaux.
et lancez ceci:
SELECT Count(*) FROM DBA_TABLES;
pour obtenir le nombre de tables.
essayer:
SELECT COUNT(*) FROM USER_TABLES;
Eh bien, je n'ai pas Oracle sur ma machine, je lance mysql (OP commentaire)
au moment de la rédaction, ce site était idéal pour les tests sur une variété de types de bases de données.
Sélectionnez count (*) FROM all_tables where owner = 'schema_name'
Ces documents décrivent les vues du dictionnaire de données:
all_tables: http://docs.Oracle.com/cd/B19306_01/server.102/b14237/statviews_4473.htm#REFRN26286
user_tables: http://docs.Oracle.com/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091
dba_tables: http://docs.Oracle.com/cd/B19306_01/server.102/b14237/statviews_4155.htm#i1627762
Vous pouvez exécuter des requêtes sur ces vues pour compter ce dont vous avez besoin.
Pour ajouter quelque chose de plus à la réponse de @Anurag Thakre:
Utilisez cette requête qui vous donnera le nombre réel de comptes à l'égard des propriétaires
SELECT COUNT(*),tablespace_name FROM USER_TABLES group by tablespace_name;
Ou par les propriétaires de table:
SELECT COUNT(*), owner FROM ALL_TABLES group by owner;
L'espace disque logique lui-même n'identifie pas un propriétaire d'objet unique. Plusieurs utilisateurs peuvent créer des objets dans le même espace de table et un seul utilisateur peut créer des objets dans différents espaces de table. Il est courant de séparer les tables et les index dans différents espaces de table.
Veuillez trouver ci-dessous - c'est le plus simple que j'utilise:
select owner, count(*) from dba_tables group by owner;
Si vous souhaitez une liste de propriétaires et le nombre de tables par propriétaire, essayez:
SELECT distinct owner, count(table_name) FROM dba_tables GROUP BY owner;
Si vous voulez connaître le nombre de tables qui appartiennent à un certain schéma/utilisateur, vous pouvez également utiliser SQL similaire à celui-ci:
SELECT Count(*) FROM DBA_TABLES where OWNER like 'PART_OF_NAME%';
REM setting current_schema is required as the 2nd query depends on the current user referred in the session
ALTER SESSION SET CURRENT_SCHEMA=TABLE_OWNER;
SELECT table_name,
TO_NUMBER (
EXTRACTVALUE (
xmltype (
DBMS_XMLGEN.getxml ('select count(*) c from ' || table_name)),
'/ROWSET/ROW/C'))
COUNT
FROM dba_tables
WHERE owner = 'TABLE_OWNER'
ORDER BY COUNT DESC;