System- und Tabellen-Informationen

(20.02.2014) Wie die Überschrift schon sagt, geht es im Folgenden darum, wie man Oracle ein paar Systeminformationen oder aber Informationen zu den Tabellen darin entlocken kann.

Datenbank-Version

(20.02.2014) Mit folgendem Select kann man die Datenbank-Version bzw. die Oracle-Version ermitteln, die man nutzt.

SELECT * 
FROM product_component_version;

Tabellen in der Datenbank

(20.02.2014) Möchte man alle Tabellen in der Datenbank auflisten, kann man dies mit folgendem Select tun. Man sieht dabei gleich, welchem Datenbank-User die Tabellen "gehören".

SELECT table_name, owner
FROM all_tab_columns
GROUP by table_name, owner
ORDER By table_name;

Tabelle oder View?

(04.09.2018) Heute wollte ich abfragen, ob ich mit einer Tabelle oder View arbeite. Das war auf den ersten Versuch gar nicht so einfach, aber mit ein bisschen Suchen im Internet habe ich dann doch eine Möglichkeit gefunden. Zusätzlich kann man auch alle Indices und Prozeduren ermitteln.

SELECT *
FROM all_objects
WHERE object_name = UPPER('ObjektName')
  AND owner = UPPER('Owner')

Größe der Tabellen in der Datenbank

(20.02.2014) Die folgende Abfrage ermittelt die Tabellengröße (in MB) aller User-Tabellen in der Datenbank (also ohne System-Tabellen). Die Abfrage habe ich leicht modifiziert und stammt im Ursprung aus folgender Quelle: http://www.yourhelpcenter.de/2009/07/oracle-grose-von-tabellen-berechnen-in-gb-mb-kb-oder-byte/

SELECT   tablename 
       , tablespace_name 
       , SUM(mb) 
FROM ( 
       SELECT   (CASE WHEN lob.segment_name IS NULL 
                   THEN seg.segment_name 
                   ELSE lob.table_name  
                   END) tablename 
              , seg.TABLESPACE_NAME 
              , bytes / 1024 / 1024 mb 
       FROM user_segments seg
       LEFT JOIN user_lobs lob
       ON seg.segment_name = lob.segment_name
       WHERE  ROUND(bytes / 1024 / 1024) > 0 
       ORDER BY 1, 2 
     ) 
GROUP BY tableName, tablespace_name 
ORDER BY 3 DESC;

Schreib was...