Wie können Sie sagen, welche Spalten ungenutzt in ALL_TAB_COLS?
Wenn Sie die Abfrage ALL_TAB_COLS Blick auf Oracle 9i, es listet die Spalten markiert als nicht verwendete sowie die "aktive" Tabelle Spalten. Es scheint nicht zu sein, ein Feld, das ausdrücklich sagt, ob eine Spalte wird nicht verwendet, oder jeder Ansicht kann ich beitreten, die eine Liste der nicht verwendeten Spalten in einer Tabelle. Wie kann ich leicht herausfinden, welche sind die nicht verwendeten Spalten, so kann ich die filter aus ALL_TAB_COLS?
InformationsquelleAutor thecoop | 2010-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit ALL_TAB_COLUMNS statt ALL_TAB_COLS. In Oracle 11.2 finde ich, dass die nicht verwendeten Spalten erscheinen in ALL_TAB_COLS (obwohl umbenannt), aber nicht in ALL_TAB_COLUMNS.
Erstellte ich eine Tabelle wie diese:
Dann set c2 unbenutzt:
Dann sehe ich:
Die nicht verwendeten Spalten-Namen-format garantiert die gleiche (sys_c00002_10060107:25:40$')?
Sorry, ich weiß es nicht - obwohl ich mir vorstellen so.
InformationsquelleAutor Tony Andrews
Den filter nur in der definition von ALL_TAB_COLUMNS ist "wo hidden_column = 'NEIN'", so scheint es, dass nicht verwendete Spalten sind markiert in der HIDDEN_COLUMN Feld.
Sich weiter in die Daten-definition-Ansichten, wie es aussieht, COL$.- EIGENSCHAFT festgelegt wird, um 32800 bits (2^5 und 2^15) wenn die Spalte wird nicht verwendet. 2^5 wird verwendet, um versteckte Spalten, so scheint es wahrscheinlich 2^15 ist UNBENUTZT. Sie können eine benutzerdefinierte version von ALL_TAB_COLS basierend auf dem, was sollte, was Sie brauchen, wie diese.
Ich würde die Ansicht in einem separaten, verschlossenen schema, das WÄHLEN Sie ein beliebiges WÖRTERBUCH Privileg, dann erstellen Sie ein öffentliches synonym für es. Diese Weise, alle Ihre Benutzer in der Lage sein würde zu sehen, die UNUSED_COLUMN Spalte nur für die Tabellen, die Sie über Berechtigungen verfügen.
InformationsquelleAutor Allan