Oracle 12c Invisible Column – Gizli Kolon

oracle12cInvisible column yani Türkçesi gizli kolonun DML işlemlerinde yapısal olarak bir farkı bulunmamaktadır.

Normal kolondan tek farklı tablo açıklamalarında ve oracle genel tablo yapılarını tutan tablolarında gözükmemesidir.

Kolonu select cümlesi ile görüntüleyebilmek için doğrudan select cümlesinde kolon adını vermelisiniz. Yoksa * ile çekerseniz kolonu göremezsiniz.

Buda size tablo hakında bilgisi olamayan yetkisiz kişilerden içerideki bilgiyi saklamanızı sağlar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SQL> CREATE TABLE ornek_tablo (col1 NUMBER, col2 NUMBER INVISIBLE);
SQL> desc ornek_tablo;
Name  Null? Type
----- ----- -----
COL1      NUMBER
SQL> INSERT INTO ornek_tablo VALUES (1);
1 row created.
SQL> SELECT * FROM ornek_tablo;
COL1
-----
1
SQL> SELECT col1, col2 FROM ornek_tablo;
COL1   COL2
------ ------
1
SQL> INSERT INTO ornek_tablo (col1,col2) VALUES (2,2);
1 row created.

Alter komutu ile tablonun bir kolonunu gizli yada açık yapabilirsiniz.

1
2
3
4
5
6
7
8
SQL> ALTER TABLE ornek_tablo MODIFY col1 INVISIBLE;  
Table altered. 
SQL> ALTER TABLE ornek_tablo MODIFY col2 VISIBLE;  
Table altered. 
SQL> desc ornek_tablo;
Name  Null? Type
----- ----- -----
COL2      NUMBER

COLINVISIBLE ON parametresini set ederek gizli kolonların görünmesini sağlayabilirsiniz.

1
2
3
4
5
6
7
8
SQL> SET COLINVISIBLE ON
SQL> DESC ornek_tablo
Name              Null?    Type
----------------- -------- ------------
COL1                       NUMBER
COL2 (INVISIBLE)           NUMBER
SQL> CREATE INDEX in_ornek_tablo ON ornek_tablo(col2);
Index created.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.