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

pl/sql de subtype kullanımı


Merhaba
Bugünki yazımızda subtype kullanımına bakacağız. Pl/Sql içinde bulunan bu özellik istediğimiz türde bir değişkeni subtype olarak tanımlayıp daha sonrada kullanmamıza imkan verir.Daha çok büyük projelerde ve paketlerde trcih edilen bu yöntem istenilen programlama seviyesinde de kullanılabilinir. Birden fazla geliştiricinin müdahele ettiği bir program içinde bazı değişken tiplerinin ve uzunluklarının sabit olarak kullanılması gerektiğinde subtype bizim işimizi görür. Örneğin bir tutarsal bilgiyi virgülden önce on ve virgülden sonra dört basamak seviyesinde tutmak istediğmizde tanımlama olarak number(14,4) şeklinde bir tanımlama yaparız. Fakat başka bir programcının,programa müdahalesi olduğunda ve tutarsal bir değişkene ihtiyacı olduğunda sadece number ya da number(10) gibi bir tanımlama yaptığında bizim önceden belirlediğimiz number(14,4) tanımlaması geçersiz olacaktır. Bu ve benzeri örnekler çoğaltılabilinir.Programlarımızda subtype kullanımın en büyük avantajı ilk başta belirlenen bir düzen üzerinden geliştirmeye devam ediyor olmamızı sağlamasıdır.
Pl/Sql ile subtype kullanımına ve hangi tipleri için nasıl tanımlamalar yaptığımıza bir göz atalım. Tanımlama olarak “subtype [type adı] is [tip ve degeri]” şeklinde bir dizilim mevcuttur. Örneğin yüz karakter uzunluğunda bir açıklama değişkeni tanımlaması “subtype aciklama is varchar2(100);” olarak yapılır.

Örnek olarak hazırladığım declare bloğunu kontrol edelim. Genelde bu işlem paketlerin spec kısımlarında yapılır, aşağıdaki örnekte de olduğu gibi istenilen her alanda da kullanılabilinir.

declare
  --- subtype tanımlamaları ---
  subtype aciklama is varchar2(100);
  subtype tutar is number(14, 4);
  subtype tarih is date;
  subtype mantiksal is boolean;
  --- subtype tanımlamaları ---

  vAciklama  aciklama;
  vTutar     tutar;
  vTarih     tarih;
  vMantiksal mantiksal;
begin

  vAciklama := 'Subtype ile tanımlanan açıklama bilgisi';
  dbms_output.put_line(vAciklama);

  vTutar := 1234567890.4321;
  dbms_output.put_line(vTutar);

  vTarih := sysdate;
  dbms_output.put_line(to_char(vTarih, 'dd/mm/yyyy hh24:mi'));

  vMantiksal := true;
  if vMantiksal then
    dbms_output.put_line('Değer True');
  else
    dbms_output.put_line('Değer False');
  end if;

end;

Bu kod bloğu çalıştığında aşağıdaki gibi bir çıktı oluşacaktır.

Subtype ile tanımlanan açıklama bilgisi
1234567890.4321
29/12/2013 12:44
Değer True

Kod bloğunda da görüldüğü gibi subtype kullanımı ve tanımlaması bu kadar kolay. Subtype olarak sistem değişkenlerinin kullanıldığı gibi tablolardaki kolonlar ve bizim tarafımızdan tanımlanan type lar içinde bu yapı kullanılabilinir. Kendi hazırladığımız bir type içinde örnek subtype kullanımı aşağıdaki gibidir.

declare

  type kayit is record(
    id       number,
    aciklama varchar2(100));

  subtype satir is kayit;

  vSatir satir;
begin

  vSatir.id       := 1;
  vSatir.aciklama := 'İlk kayıt';

  dbms_output.put_line(vSatir.id || ' -- ' || vSatir.aciklama);

end;

Görüldüğü gibi önceki tanımlamalardan farkı yok ve bu kdar kolay bir şekilde tanımlanabiliyor. Bu kodun çıktısıda aşağıdadır.

1 -- İlk kayıt

Artık subtype nedir nasıl kullanılır bunları öğrenmiş olduk. Bu kolay ve yönetsel kullanımı istediğiniz şekilde tasarlayıp yönetebilirsiniz.
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: