Dba tables all
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Domaine | Administration (inventaire de tables) |
| Voir aussi | Dba tables current user · Dba tables query user · Dba table info |
Dba tables all liste toutes les tables de la base, tous schémas confondus (à l'exception de SYS et SYSTEM), avec leur tablespace, la date de dernière analyse et le nombre de lignes. Le rapport est écrit dans un fichier plutôt qu'affiché à l'écran, pratique pour un inventaire complet à exploiter ensuite (recherche, comparaison entre environnements...).
Fait partie d'une famille de trois scripts qui ne diffèrent que par leur périmètre : voir Dba tables current user (utilisateur connecté) et Dba tables query user (schéma choisi à l'exécution).
Script
-- Inventaire de toutes les tables de la base (hors SYS/SYSTEM),
-- écrit dans un fichier.
SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT rpad(instance_name, 17) current_instance FROM v$instance;
SET TERMOUT ON
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Report : All Database Tables |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 180
SET PAGESIZE 50000
SET TERMOUT OFF
SET TRIMSPOOL ON
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
COLUMN owner FORMAT a20 HEADING "Owner"
COLUMN table_name FORMAT a30 HEADING "Table Name"
COLUMN tablespace_name FORMAT a30 HEADING "Tablespace"
COLUMN last_analyzed FORMAT a20 HEADING "Last Analyzed"
COLUMN num_rows FORMAT 999,999,999,999 HEADING "# of Rows"
DEFINE spool_file=database_tables.lst
SPOOL &spool_file
SELECT
owner
, table_name
, tablespace_name
, TO_CHAR(last_analyzed, 'DD-MON-YYYY HH24:MI:SS') last_analyzed
, num_rows
FROM
dba_tables
WHERE
owner NOT IN ('SYS', 'SYSTEM')
ORDER BY
owner
, table_name
/
SPOOL OFF
SET TERMOUT ON
PROMPT
PROMPT Report written to &spool_file
PROMPT
Utilisation
Le résultat est écrit dans database_tables.lst (nom modifiable via DEFINE spool_file=... en tête de script) plutôt qu'affiché à l'écran — pratique pour un inventaire à archiver ou à comparer entre deux exécutions.
Voir aussi
- Dba tables current user — même rapport, limité aux tables de l'utilisateur connecté
- Dba tables query user — même rapport, pour un schéma choisi au moment de l'exécution
- Dba table info — fiche détaillée d'une table précise