Comment puis-je liste toutes les tables dans un schéma Oracle SQL?
Comment puis-je liste toutes les tables dans un schéma Oracle SQL?
Vous devez vous connecter pour publier un commentaire.
Comment puis-je liste toutes les tables dans un schéma Oracle SQL?
Vous devez vous connecter pour publier un commentaire.
Pour voir toutes les tables dans un autre schéma, vous devez avoir un ou plusieurs des éléments suivants du système privilèges:
ou la grande-marteau, le rôle de DBA.
À l'un de ceux, vous pouvez sélectionner:
Sans ces privilèges système, vous ne pouvez voir les tableaux qui vous ont été accordées à un certain niveau de l'accès, que ce soit directement ou à travers un rôle.
Enfin, vous pouvez toujours interroger le dictionnaire de données pour vos propres tableaux, vos droits sur vos tables ne peuvent pas être révoqué (comme de 10g):
%_OBJECTS
au lieu de%_TABLES
.DISTINCT
dans la requête.owner, object_name
est unique dansALL_OBJECTS
owner, object_name
n'est pas unique, par tout moyen dba_objects; Corps des paquets et des Paquets apparaissent de ce point de vue, et les Tables et les Index sont dans des espaces de noms différents.Vous pouvez interroger
USER_TABLES
Si vous vous êtes connecté en tant qu'Utilisateur Normal sans DBA autorisation vous pouvez utilise la commande suivante pour voir votre propre schéma de toutes les tables et vues.
Essayez ceci, le remplacer ? avec votre nom de schéma
Si vous avez accès à Oracle avec JDBC (Java), vous pouvez utiliser DatabaseMetadata classe. Si vous avez accès à Oracle avec ADO.NET vous pouvez utiliser une approche similaire.
Si vous avez accès à Oracle ODBC, vous pouvez utiliser SQLTables fonction.
Sinon, si vous avez besoin des informations dans SQLPlus ou similaire Oracle client, une des requêtes déjà mentionné le fera. Par exemple:
il va afficher toutes les tables dans votre schéma chat synonyme de user_catalog
(montrant toutes les tables)
Requête ci-dessus vous donnera les noms de toutes les tables présentes dans cet utilisateur;
SELECT table_name, propriétaire DE all_tables où le propriétaire='schema_name' order by table_name
Regarde mon utilitaire simple de montrer un peu d'info au sujet de db schéma. Il est basé sur: L'Ingénierie inverse d'un Modèle de Données
En utilisant le Dictionnaire de Données Oracle
Si vous avez besoin pour obtenir la taille de la table ainsi, ce sera à portée de main:
select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1
Nom de la table et les lignes compteur pour tous les tableaux sous
OWNER
schéma:SELECT table_name, num_rows counter from DBA_TABLES WHERE owner = 'OWNER'
Vous pouvez exécuter directement la deuxième requête si vous connaissez le nom du propriétaire.
--D'abord, vous pouvez sélectionner ce que tous les PROPRIÉTAIRES il existe:
--Ensuite, vous pouvez voir les tables sous par le propriétaire: