Richard Foote erläutert in seinem Blog die grundlegenden Eigenschaften von invisible columns und weist dabei insbesondere auf einen interessanten Nebeneffekt hin: durch die Änderung der Sichtbarkeit kann man die Reihenfolge der Spalten in der Anzeige ändern. Dazu ein Beispiel:
drop table t; create table t ( a number , b number , c number ); insert into t(a, b, c) values (1, 2, 3); select * from t; A B C ---------- ---------- ---------- 1 2 3 alter table t modify a invisible; select * from t; B C ---------- ---------- 2 3 alter table t modify a visible; select * from t; B C A ---------- ---------- ---------- 2 3 1
Die Spalte A erscheint nach der erneuten Setzung auf VISIBLE an letzter Stelle. Ein Blick auf die Informationen im data dictionary liefert die zugehörigen Metadaten:
select column_name , segment_column_id , column_id from dba_tab_cols where table_name = 'T' order by segment_column_id; COLUMN_NAME SEGMENT_COLUMN_ID COLUMN_ID ---------------- ----------------- ---------- A 1 3 B 2 1 C 3 2
Während sich an der Ablage im Block (natürlich) nichts ändert (also an der segment_column_id), ergibt sich eine veränderte Reihenfolge in der Darstellung (column_id). In manchen Situationen könnte diese Möglichkeit recht nützlich sein.
Keine Kommentare:
Kommentar veröffentlichen