Le dictionnaire de données : premiers pas

Dans un certains nombres des scripts (index dans tablespace, lob dans tablespace, export de la structure Oracle, ...) touchant à l'ensemble d'un schéma ou de la base, le code boucle sur des vues du dictionnaire de données. Voici plus en détail le fonctionnement de celui-ci.

Oracle distingue parmis le dictionnaire de données les vues statiques des vues dynamiques.

Vues statiques


Vues des segments :
all_[objet] : Tous les objets accessibles par l'utilisateur
user_[objet] : Tous les objets du schema de l'utilisateur
dba_[objet] : Tous les objets de la base (accessible par sys)

Parmi les objets les plus courants :
tables
indexes
db_links
tablespaces
tab_columns
tab_cols
PART_TABLES
TAB_PARTITIONS
OBJECTS

Pour connaître plus en détail le contenu de ces vues, il existe la commande DESC (pas SQL mais implémentée sous sqlplus, toad, ...)

SQL> DESC all_tables;

De cette manière, nous pouvons interroger le dictionnaire pour obtenir :

- la liste de toutes les tables d'un schema :
Connecté en sysdba :
select table_name from dba_tables where owner='USEREX';

Connecté en USEREX :
select table_name from user_tables;

- la liste de toutes les tables accessibles par un utilisateur (utilisation de decode):
select decode(OWNER, 'USEREX', '', owner||'.') || table_name from all_tables order by decode(OWNER, 'USEREX', '', owner||'.'), table_name;

De la même manière, on listera tous les objets (ou tous les objets accessibles par un utilisateur précis) en interrogeant la vue statique adéquate.

Retour à l'index des articles


Catégories