Oracle PL/SQL – Object Type -1 USING PL/SQL OBJECT TYPES

… Gönül buğday tanesine benziyor,
bizse değirmene.
Değirmen nereden bilecek
bu dönüşün sebebi ne?
— Mevlana

Merhaba

Uzun süredir yazmayı planladığım oracle’daki object type kullanımı konusuna başlamış bulunuyorum. (Çok sık kullandığım ve sevdiğim bir alandır) Konu o kadar geniş ve bir kaç makaleye sığdırılamayacak kadar büyük ki nerden başlayacağınıza, konuları nasıl böleceğinize, makaleyi nerede sonlandıracağınıza karar vermek zor olabiliyor. En son sıfırdan, başlangıç seviyesinden anlatmaya karar verdim.

İlk makalemizde çok kısa bir şekilde, object type create(bu zaten standart, her makalenin olmazsa olmazı), initialize, example şeklinde olacak. aynı objeyi birkaç örnek kullanımıyla birlikte vereceğim.

—————————————————————

İhtiyaç Fazlası

öncelikle object type’lar pl/sql de nesne yönelimli kod yazabilme olanağı sunar. (Gerçek hayattaki objeleri veritabanında oluşturup, bunları birbirinden türetip, kullanabilme gibi, daha birçok konu.  Bunu ilerleyen makalelerimizde detaylı olarak anlatacağız.) Java, c# dillerinde çalışmış arkadaşlar bu özelliği çok severler genelde. Bu makelemizde, object type nasıl oluşturulur ve nasıl kullanılır, onu anlatacağız.

End ihtiyaç Fazlası

—————————————————————

 

Şimdi object type’ımızı create edelim

create or replace type t_key_value as object 
(
key    varchar2(1000),
value  varchar2(4000)
)
/

Key ve value property’si olan bir nesne oluşturmuş olduk. Buna değerler set edip, ihtiyacımız olduğunda nasıl kullanırız, bunu iki örnekle anlatacağım

————————————————————–

ilk Örneğimiz Şu şekilde olacak

-- Created on 14.05.2015 by Cevheri 
declare
  -- 1.Yöntem
  -- Null yüklemesi yapılarak, initialize etmiş oluyoruz. 
  -- bunun birden fazla yöntemi var
  -- constructor verilerek te yapılabilir. ilerde onunda örneğiniz yaparız. 
  -- ama en basit haliyle anlattığımız için bu şekilde devam edelim
  v_kv t_Key_Value := t_Key_Value(null, null);
begin
  v_kv.key   := '01';
  v_kv.value := 'Adana';
  
  dbms_output.put_line('Key   :'||v_kv.key);
  dbms_output.put_line('Value :'||v_kv.value);
end;
/

 

————————————————————–

İkinci örneğimiz(çeşitli kullanma yöntemleri hangisini severseniz)

-- Created on 14.05.2015 by Cevheri 
declare
  -- 2.Yöntem
  -- Null yüklemesi yapılarak, initialize etmiş oluyoruz. 
  -- bunun birden fazla yöntemi var
  -- constructor verilerek te yapılabilir. ilerde onunda örneğiniz yaparız. 
  -- ama en basit haliyle anlattığımız için bu şekilde devam edelim
  v_kv t_Key_Value;
begin
  v_kv := t_key_value( '01', 'Adana');
  
  dbms_output.put_line('Key   :'||v_kv.key);
  dbms_output.put_line('Value :'||v_kv.value);
end;
/

iki örneğin çıktısı da aynı olacak:

Key     :01
Value :Adana

———————–

 

Type’lar bu şekilde oluşturulur ve benim kullandığım iki yöntemi de göstermek istedim.

Sonraki makalelerimizde, bu type’ları, List<> şeklinde kullanımı, constructor tanımı, under, final keywordleri, type içine business iş katmanını nasıl yedireceğiz,  function, procedure nasıl yazılır(bunu öğrendikten sonra plsql package yazmayacağınıza eminim…) bunları da dilimiz döndüğünce anlatmaya çalışacağız.

(Referans : http://docs.oracle.com/cd/B12037_01/appdev.101/b10807/10_objs.htm)

 

Kolay Gelsin

Selam ve Dua ile…

@Cevheri