Oracle 12C Invisible Column

Oracle 12C invisible column:

Invisible column Oracle 12C ile gelen yeni bir özelliktir.Bir kolonu tablo yaratırken gizli olarak belirtebiliyoruz, veya daha sonradan gizli olarak işaretleyebiliyoruz.Gizlenen kolon describe(desc),select * from table, işlemlerinde görünmeyecektir.Insert işleminde,select listesinde,where kısmında kolonu belirterek kolonu kullanabiliyoruz.Invisible kolon external table,cluster table ve temp table’da desteklenmiyor. Invisible kolon maaş vb önemli bilgilerin doğrudan görünmesini engellemek için faydalı olabilir.

Örnekler için tablo oluşturalım.

Kolonun yanına yazdığımız INVISIBLE keyword’le kolonun invisible olduğunu belirtiyoruz.

CREATE TABLE Calisanlar_Tab(emp_no number(6),
name varchar2(40),
salary number(9) INVISIBLE);

Tablomuzu desc yapalım.Invisible kolon görünmeyecektir.

DESC Calisanlar_Tab;
 
Name      Null?  Type
----------------------------------------- -------- ----------------------
emp_no           NUMBER
name             VARCHAR2(40)

Kolonu visible yapmak için;

ALTER TABLE Calisanlar_Tab MODIFY(salary VISIBLE);

Kolonu invisible yapmak için;

ALTER TABLE Calisanlar_Tab MODIFY(salary INVISIBLE);

Tablomuza veri girişi yapalım;

insert into Calisanlar_Tab values (1,'Berna Duru');
1 row created.

İnvisible kolona veri girişi yapalım.

insert into Calisanlar_Tab(emp_no,name,salary) values (1,'Berna Duru',1500);
1 row created.

Invisible kolonları görmek için;

SELECT TABLE_NAME,  COLUMN_NAME, HIDDEN_COLUMN
  FROM USER_TAB_COLS WHERE HIDDEN_COLUMN='YES';

View oluştururken invisible kolon oluşturmak isterseniz;

Create or replace view Calisanlar_vw(emp_no,salary INVISIBLE)
as select emp_no, salary from Calisanlar_Tab;
View created.

Tablodaki tüm kolonları invisible yapmak isterseniz, maalesef en az bir tane visible kolon olmasını istiyor ve aşağıdaki hatayı veriyor..

ERROR at line 1:
ORA-54039: table must have at least one column that is not invisible

Umarım faydalı olur.

 

Tagged: , , , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir