Comment lister toutes les tables d’un schéma dans Oracle SQL?

Comment puis-je répertorier toutes les tables d’un schéma dans Oracle SQL?

Pour afficher toutes les tables d’un autre schéma, vous devez disposer d’un ou plusieurs privilèges système suivants:

SELECT ANY DICTIONARY (SELECT | INSERT | UPDATE | DELETE) ANY TABLE 

ou le grand marteau, le rôle de DBA.

Avec l’un de ceux-ci, vous pouvez sélectionner:

 SELECT DISTINCT OWNER, OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = '[some other schema]' 

Sans ces privilèges système, vous ne pouvez voir que les tables auxquelles vous avez obtenu un certain niveau d’access, que ce soit directement ou via un rôle.

 SELECT DISTINCT OWNER, OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = '[some other schema]' 

Enfin, vous pouvez toujours interroger le dictionnaire de données pour vos propres tables, car vos droits sur vos tables ne peuvent pas être révoqués (à partir de 10g):

 SELECT DISTINCT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE' 
 SELECT table_name from all_tables where owner = 'YOURSCHEMA'; 

Vous pouvez interroger USER_TABLES

 select TABLE_NAME from user_tables 

Si vous vous êtes connecté en tant qu’utilisateur normal sans l’autorisation DBA, vous pouvez utiliser la commande suivante pour afficher toutes les tables et vues de votre propre schéma.

 select * from tab; 

Essayez ceci, remplacez? avec votre nom de schéma

 select TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA =? AND TABLE_TYPE = 'BASE TABLE' 

Si vous accédez à Oracle avec JDBC (Java), vous pouvez utiliser la classe DatabaseMetadata . Si vous accédez à Oracle avec ADO.NET, vous pouvez utiliser une approche similaire.

Si vous accédez à Oracle avec ODBC, vous pouvez utiliser la fonction SQLTables .

Sinon, si vous avez juste besoin des informations dans SQLPlus ou un client Oracle similaire, l’une des requêtes déjà mentionnées fera l’affaire. Par exemple:

 select TABLE_NAME from user_tables 
 select * from user_tables; 

(montrant toutes les tables)

 select * from cat; 

il affichera toutes les tables de votre chat de schéma synonyme de user_catalog

SELECT nom_table, propriétaire FROM all_tables où propriétaire = ‘nom_schéma’ ordre par nom_table

Regardez mon utilitaire simple pour afficher des informations sur le schéma de firebase database. Il est basé sur: Reverse engineering d’un modèle de données à l’aide du dictionnaire de données Oracle

 select TABLE_NAME from user_tables; 

La requête ci-dessus vous donnera les noms de toutes les tables présentes dans cet utilisateur;

Si vous devez également obtenir la taille de la table, ce sera pratique:

select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1