… 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