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