Başlangıç > Database, Oracle, PL/SQL > pl/sql de invisible column kullanımı

pl/sql de invisible column kullanımı


Merhaba
ora2Oracle 12c ile gelen yeni özelliklerden olan identity özelliğini daha önce pl/sql de identity kullanımı yazımda size anlatmıştım. Şimdide Oracle 12c ile gelen diğer özelliklerden olan invisible column özelliğini inceleyelim. Invisible column adından da anlaşılacağı gibi görünmez sütun demek, yani tablomuzda bir alanı invisible yaparsak soruglarımızda select * from olarak kullanımlarda bu alanı göremeyiz sadece select alan1,alan2 from şeklinde sütun adını belirterek sorgulamalarda bu alanı görebiliriz. Şimdi normal bir tablo ve invisible column içeren bir tabloyu ve kullanımını birlikte inceleyeylim.

Öncelikle normal bir tablo oluşturalım ve oluşturma scriptini ve sorgu sonuçlarına bakalım.

create table normaltable
(
  id number,
  aciklama varchar2(100)
);

Tablomuz hazır ve içerisine verilerimizi ekleyelim.

insert into normaltable
  (id, aciklama)
values
  (1, 'İlk normal tablo açıklaması');
commit;

Sorgumuzu ve sonuçlarını görelim.

select * from normaltable;
ID ACIKLAMA
1 İlk normal tablo açıklaması

Bilgiğiniz gibi normal bir tablo ile yapacaklarımızı yaptık. Select * from yerine alan adlarını ekleyip de sorgulama yapsak aynı sonucu alacaktık. Normal bir tablo yerine neden içerisinde invisible column olan bir tablo kullanmamız gerekir. Örneğin bir tabloda şifre bilgisi ya da o tabloya select yetkisi olan birinin select * from ifadesi ile görmesini istemediğiniz bilgilerin olması durumunda bu alanı invisible olarak tanımlarsanız, sadece ilgili sütunun adını bilen kullanıcılar tabloya o adı verip soruglama yaptığında değerleri görebilir.Şimdi invisible column değeri olan tablomuzu yaratalım ve örnekler ile daha anlaşılır olmasını sağlayalım.

create table invisibletable
(
  id number,
  aciklama varchar2(100),
  pass varchar2(20) invisible
);

Yukarı kod içerisinde de görüldüğü gibi pass alanı invisbile olarak tanımlanmış yani bu demek oluyorki ben tabloua select * from ifadesi ile sorgulama yaptığımda bu değeri göremeyeceğim. Tablo içerisine kayıt ekleyip bu duruma bakalım.

insert into invisibletable
  (id, aciklama, pass)
values
  (1, 'İlk invisible tablo açıklaması', 'abc123');

insert into invisibletable
values
  (2, 'alan bilgileri olmadan insert işlemi');
commit;

Tablomuz ve kayıtlarımız hazır. Şimdi sıra soruglama işleminde. İlk olarak select * from ifadesi ile sorgulama yapalım.

select * from invisibletable;
ID ACIKLAMA
1 İlk invisible tablo açıklaması
2 alan bilgileri olmadan insert işlemi

Sorgu sonucunda da görüldüğü gibi pass alanımızı göremedik. Fakat sorgulamayı aşağıdaki gibi değiştirsek pass alanınıda görebiliriz.

select id, aciklama, pass from invisibletable;
ID ACIKLAMA PASS
1 İlk invisible tablo açıklaması abc123
2 alan bilgileri olmadan insert işlemi

Bu seferki sorgu sonucumuzda ise tüm değerli görmüş olduk. İstediğiniz gibi bu alanı kullanıp değiştirebilirsiniz. İster ilk tablo oluştururken isterseniz daha sonra alter işlemi ile invisible özelliğini kullanabilirsiniz. Invisible özelliğine sahip bir alanın bu özelliğini kaldırmak için ya da istenilen bir alana invisible özelliğini vermek aşağıdaki gibi bir alter satırı yazmanız yeterli olacaktır.

alter table [tabloadi] modify [alanadi] visible;--invisible olan alanı visible yapar.
alter table [tabloadi] modify [alanadi] invisible;--visible olan bir alanı invisible yapar.

Örnek olarak bizim tablomuzdaki pass alanını visible ve id alanını da invisible yapalım.

alter table invisibletable modify pass visible;
alter table invisibletable modify id invisible;

Yukarıdaki işlemden sonra tabloyu tekrar sorguladığımızda sonuçları aşağıdaki gibi olacaktır.

select * from invisibletable;
ACIKLAMA PASS
İlk invisible tablo açıklaması abc123
alan bilgileri olmadan insert işlemi

Kolay gelsin.

Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: