====== 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 Name^Type^Null^
|INSTANCE_NUMBER|NUMBER| Y |
|INSTANCE_NAME|VARCHAR2 (16 Byte)| Y |
|HOST_NAME|VARCHAR2 (64 Byte)| Y |
|VERSION|VARCHAR2 (17 Byte)| Y |
|STARTUP_TIME|DATE| Y |
|STATUS|VARCHAR2 (12 Byte)| Y |
|PARALLEL|VARCHAR2 (3 Byte)| Y |
|THREAD#|NUMBER| Y |
|ARCHIVER|VARCHAR2 (7 Byte)| Y |
|LOG_SWITCH_WAIT|VARCHAR2 (11 Byte)| Y |
|LOGINS|VARCHAR2 (10 Byte)| Y |
|SHUTDOWN_PENDING|VARCHAR2 (3 Byte)| Y |
|DATABASE_STATUS|VARCHAR2 (17 Byte)| Y |
|INSTANCE_ROLE|VARCHAR2 (18 Byte)| Y |
|ACTIVE_STATE|VARCHAR2 (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 è:
^OWNER^NAME^TYPE^LINE^TEXT^
|SYS|SERVER_ERROR|FUNCTION|1|function server_error (position binary_integer)|
|SYS|SERVER_ERROR|FUNCTION|2|return binary_integer is|
|SYS|SERVER_ERROR|FUNCTION|3|begin|
|SYS|SERVER_ERROR|FUNCTION|4|return dbms_standard.server_error(position);|
|SYS|SERVER_ERROR|FUNCTION|5|end;|
===== 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'