Indice

Tabelle e Viste di Sistema

V$Instance

La V$Instance è una vista che contiene i dati dell'istanza a cui si è collegati. Se si dispone di più server Oracle replicati (ad esempio per gestire gli ambienti di Sviluppo, Collaudo e produzione), un dato importante è rappresentato da HOST_NAME che riporta il nome macchina (Interrogato può fugare i dubbi i dubbi riguardo al DB cui siamo collegati).

SELECT * FROM V$Instance

Dalla definizione della tabella riportata di seguito si vede come questa vista contenga anche altre interessanti informazioni tipo lo Stato, Data e Ora dello Start Up, la Versione di Oracle, ecc…

Column NameTypeNull
INSTANCE_NUMBERNUMBER Y
INSTANCE_NAMEVARCHAR2 (16 Byte) Y
HOST_NAMEVARCHAR2 (64 Byte) Y
VERSIONVARCHAR2 (17 Byte) Y
STARTUP_TIMEDATE Y
STATUSVARCHAR2 (12 Byte) Y
PARALLELVARCHAR2 (3 Byte) Y
THREAD#NUMBER Y
ARCHIVERVARCHAR2 (7 Byte) Y
LOG_SWITCH_WAITVARCHAR2 (11 Byte) Y
LOGINSVARCHAR2 (10 Byte) Y
SHUTDOWN_PENDINGVARCHAR2 (3 Byte) Y
DATABASE_STATUSVARCHAR2 (17 Byte) Y
INSTANCE_ROLEVARCHAR2 (18 Byte) Y
ACTIVE_STATEVARCHAR2 (9 Byte) Y

All_Objects / DBA_Objects

Contengono l'elenco di tutti gli oggetti presenti nel DB con il rispettivo Status e Owner

-- Cerco gli Oggetti Invalidi
SELECT * FROM All_Objects
  WHERE STATUS = 'INVALID'
 
-- Cerco tutti gli Oggetti di uno Schema (sys)
SELECT * FROM All_Objects
  WHERE Owner = 'SYS'
 
-- Cerco tutti gli Oggetti di tipo Tabella
SELECT * FROM All_Objects
  WHERE Object_Type = 'TABLE'

All_Sources / DBA_Sources

Contengono il codice di tutti i Packages, le Funzioni, le Procedure e le definizioni dei Tipi presenti nel DB. Sono utili se si vuole cercare qualcosa nel codice del DB.

Volendo estrarre il codice della fuinzione SERVER_ERROR posso scrivere:

SELECT * FROM All_Source
  WHERE Name = 'SERVER_ERROR'

Il cui risultato è:

OWNERNAMETYPELINETEXT
SYSSERVER_ERRORFUNCTION1function server_error (position binary_integer)
SYSSERVER_ERRORFUNCTION2return binary_integer is
SYSSERVER_ERRORFUNCTION3begin
SYSSERVER_ERRORFUNCTION4return dbms_standard.server_error(position);
SYSSERVER_ERRORFUNCTION5end;

ALL_Tab_Cols / DBA_Tab_Cols

Contengono l'elenco di tutte le colonne presenti nelle tabelle del DB con relativo nome di tabella e tipo. E'utile per trovare quali tabelle contengono una determinata colonna o verificare il tipo di una colonna su diverse tabelle.

-- Cerco la colonna Owner in tutte le tabelle
SELECT * FROM ALL_TAB_COLS
  WHERE Column_Name = 'OWNER'