Bu dökümanda kısaca oracle içinde nasıl otomatik artan bir sütun üretileceğine değinilmiştir. İndirmek için tıklayınız!
İNDİR
22 Ağustos 2010 Pazar
3 Haziran 2010 Perşembe
PL/SQL'DE BLOK YAPILARI VE VERİ TİPLERİ
Bu makalemizde gelin beraber PL/SQL'de kullanılan farklı blok yapılarını ve veri tiplerini inceleyelim. PL/SQL'de bloklar denildiğinde akla birbiri ile ilişkisel olarak bağlı program parçacıklarının bir arada tutulduğu,birleştirildiği yapılar akla gelir. Ayrıca bu bloklar içiçe de kullanılabilirler. Bu blokları üç ayrı türe ayırabiliriz. Bunlar;
• Normal Blok
• Fonksiyon Bloğu
• Prosedürel Blok
Şimdi bu blokları ayrıntılı olarak inceleyelim.
• NORMAL BLOK:
Bu tip bloklarda birbiriyle ilişkili cümlecik ve tanımlamalar yer alır. Blok yapısı aşağıdaki gibidir.
DECLARE
tanımlamalar
BEGIN
komutlar
EXCEPTION
hata durumları
END;
Declare kısmında blok içinde kullanılacak değişken tanımlamaları yapılır. Begin blok başlangıcını belirtir. End ise blok bitişini işaret eder ve noktalı virgül işaretiyle biter.Komutlar Begin-End bloğu içine yazılırlar. Ayrıca isteğe bağlı olarak Exception kısmında çıkabilecek bir hata durumunda neler yapılması gerektiğini belirten komutlar yazılabilir. Şimdi bu blok türüne ait bir örneği aşağıda belirtiyorum.
DECLARE
FIYAT_ARTIS_ORANI:=0.2;
BEGIN
UPDATE SEBZE SET FIYAT=FIYAT*(1+FIYAT_ARTIS_ORANI);
COMMIT;
END;
Yukardaki blok sebze fiyatlarında %20 bir artış yapan PL/SQL bloğudur.
• FONKSİYON BLOĞU:
Fonksiyon blokları bir geri değer döndüren alt programlardır ve aşağıdaki kalıba göre oluşturulur.
FUNCTION Fonksiyonİsmi
Tanımlamalar
BEGIN
Komutlar
EXCEPTION
Hata Durumları
END Fonksiyonİsmi;
Function ifadesinden sonra fonksiyona vereceğimiz ismi yazarız.Ardından gerekli değişken tanımlamalarımızı da yazarız. Sonraki kısım normal blokta olduğu gibi begin-end arasına yazılan komutlardan oluşur.Şimdi konuyu daha iyi anlamak için bir örnek yapalım.
FUNCTION MAAS_BUL(PERSONEL_NO INTEGER) RETURN NUMBER IS MAASI NUMBER;
BEGIN
SELECT MAAS INTO MAASI FROM PERSONEL WHERE PERSONELNO=PERSONEL_NO;
RETURN MAASI;
END MAAS_BUL;
Yukardaki yaptığımız örnekte fonksiyon bloğumuzun adını
MAAS_BUL olarak belirledik.Ardından parantez içinde PERSONEL_NO isimli
integer veri tipinde bir fonksiyon girdi parametresi belirttik.Fonksiyonun geri dönüş tipini de number olarak yazdık.
Ayrıca MAASI adında bir değişken tanımladık.Sonra geldik begin-end arasında gerekli kodlarımızı yazmaya.Fonksiyon çalıştırıldığında girilen personel numarası personel tablosunda kayıtlı personel numaralarından biriyse ilgili kaydın maaş bilgisini al ve MAASI isimli değişkene aktar dedik select cümleciğiyle.Son olarakta return komutu ile bulunan bu maaş bilgisini geri döndürmesini istedik. END kısmını da mutlaka fonksiyonun adını yazarak bitirmeyi unutmadık.
• PROSEDÜREL BLOK:
Bu tarz bloklar sonuç olarak birden çok değer döndüren alt programlar olarak çalışırlar. Yapısı aşağıdaki gibidir.
PROCEDURE Prosedür_İsmi
Tanımlamalar
BEGIN
Komutlar
EXCEPTION
Hata Durumları
END Prosedür_İsmi;
Umuyorum ki bu yapı ile ilgili hemen bir örnek yaparsak konu daha iyi anlaşılacaktır.
PROCEDURE AD_SOYAD_BUL(PERSONEL_NO IN INTEGER,AD OUT CHAR,
SOYAD OUT CHAR) IS MAAS NUMBER(10);
BEGIN
SELECT ADI,SOYADI,MAASI INTO AD,SOYAD,MAAS FROM PERSONEL
WHERE PERSONELNO=PERSONEL_NO;
END AD_SOYAD_BUL;
Şimdi bu kod bloğunu açıklamaya çalışalım. Öncelikle işe prosedür bloğumuza isim vererek başladık. Ardından parantez içinde fonksiyonun parametrelerini tanımladık.Sonra begin-end kısmında sql cümleciğimi yazdık.Bu PL/SQL kodları ile yapılmak istenen aranılan bir personelin numarasına göre bulunması ve bulunan kişinin ad,soyad ve maaş bilgilerinin kullanıcıya geri döndürülmesidir.
Sıra geldi PL/SQL'de kullanılan veri tiplerine değinmeye.
• PL/SQL VERİ TİPLERİ:
NUMBER: 38 basamağa kadar destek sunan nümerik veri tipidir.
BINARY_INTEGER: Nümerik bir yapıya sahiptir.Number veri tipinden farkı veritabanında daha az yer kaplamasıdır.
CHAR: Karakter veri tipidir.
VARCHAR2: Karakter veri tipidir.Değişken uzunlukta karakterleri tutabilir. Maksimum uzunluğu 32767 bytedır.
LONG: Varchar2 veri tipi gibidir. Fakat karakter tutma sınırı 2GB'a kadar yükselir.
LONG RAW: Long tipinde binary olarak veri tutan veri tipidir.
BOOLEAN: True-False tipi değerleri depolar.
DATE: Tarih ve saat unsurlarını tutabilen veri tipidir.
TIMESTAMP: Date gibi tarih saat değerlerini tutar. Ayrıntılı olarak yüzyıldan saniyeye kadar olan bütün bilgileri tutar.
Evet kısaca PL/SQL'deki blok yapılarını ve veri tiplerini inceledik. Umuyorum ki yararlı olmuştur. Bir sonraki makalemizde görüşmek dileğiyle.
YAZAR: Görkem SEZGİN
• Normal Blok
• Fonksiyon Bloğu
• Prosedürel Blok
Şimdi bu blokları ayrıntılı olarak inceleyelim.
• NORMAL BLOK:
Bu tip bloklarda birbiriyle ilişkili cümlecik ve tanımlamalar yer alır. Blok yapısı aşağıdaki gibidir.
DECLARE
tanımlamalar
BEGIN
komutlar
EXCEPTION
hata durumları
END;
Declare kısmında blok içinde kullanılacak değişken tanımlamaları yapılır. Begin blok başlangıcını belirtir. End ise blok bitişini işaret eder ve noktalı virgül işaretiyle biter.Komutlar Begin-End bloğu içine yazılırlar. Ayrıca isteğe bağlı olarak Exception kısmında çıkabilecek bir hata durumunda neler yapılması gerektiğini belirten komutlar yazılabilir. Şimdi bu blok türüne ait bir örneği aşağıda belirtiyorum.
DECLARE
FIYAT_ARTIS_ORANI:=0.2;
BEGIN
UPDATE SEBZE SET FIYAT=FIYAT*(1+FIYAT_ARTIS_ORANI);
COMMIT;
END;
Yukardaki blok sebze fiyatlarında %20 bir artış yapan PL/SQL bloğudur.
• FONKSİYON BLOĞU:
Fonksiyon blokları bir geri değer döndüren alt programlardır ve aşağıdaki kalıba göre oluşturulur.
FUNCTION Fonksiyonİsmi
Tanımlamalar
BEGIN
Komutlar
EXCEPTION
Hata Durumları
END Fonksiyonİsmi;
Function ifadesinden sonra fonksiyona vereceğimiz ismi yazarız.Ardından gerekli değişken tanımlamalarımızı da yazarız. Sonraki kısım normal blokta olduğu gibi begin-end arasına yazılan komutlardan oluşur.Şimdi konuyu daha iyi anlamak için bir örnek yapalım.
FUNCTION MAAS_BUL(PERSONEL_NO INTEGER) RETURN NUMBER IS MAASI NUMBER;
BEGIN
SELECT MAAS INTO MAASI FROM PERSONEL WHERE PERSONELNO=PERSONEL_NO;
RETURN MAASI;
END MAAS_BUL;
Yukardaki yaptığımız örnekte fonksiyon bloğumuzun adını
MAAS_BUL olarak belirledik.Ardından parantez içinde PERSONEL_NO isimli
integer veri tipinde bir fonksiyon girdi parametresi belirttik.Fonksiyonun geri dönüş tipini de number olarak yazdık.
Ayrıca MAASI adında bir değişken tanımladık.Sonra geldik begin-end arasında gerekli kodlarımızı yazmaya.Fonksiyon çalıştırıldığında girilen personel numarası personel tablosunda kayıtlı personel numaralarından biriyse ilgili kaydın maaş bilgisini al ve MAASI isimli değişkene aktar dedik select cümleciğiyle.Son olarakta return komutu ile bulunan bu maaş bilgisini geri döndürmesini istedik. END kısmını da mutlaka fonksiyonun adını yazarak bitirmeyi unutmadık.
• PROSEDÜREL BLOK:
Bu tarz bloklar sonuç olarak birden çok değer döndüren alt programlar olarak çalışırlar. Yapısı aşağıdaki gibidir.
PROCEDURE Prosedür_İsmi
Tanımlamalar
BEGIN
Komutlar
EXCEPTION
Hata Durumları
END Prosedür_İsmi;
Umuyorum ki bu yapı ile ilgili hemen bir örnek yaparsak konu daha iyi anlaşılacaktır.
PROCEDURE AD_SOYAD_BUL(PERSONEL_NO IN INTEGER,AD OUT CHAR,
SOYAD OUT CHAR) IS MAAS NUMBER(10);
BEGIN
SELECT ADI,SOYADI,MAASI INTO AD,SOYAD,MAAS FROM PERSONEL
WHERE PERSONELNO=PERSONEL_NO;
END AD_SOYAD_BUL;
Şimdi bu kod bloğunu açıklamaya çalışalım. Öncelikle işe prosedür bloğumuza isim vererek başladık. Ardından parantez içinde fonksiyonun parametrelerini tanımladık.Sonra begin-end kısmında sql cümleciğimi yazdık.Bu PL/SQL kodları ile yapılmak istenen aranılan bir personelin numarasına göre bulunması ve bulunan kişinin ad,soyad ve maaş bilgilerinin kullanıcıya geri döndürülmesidir.
Sıra geldi PL/SQL'de kullanılan veri tiplerine değinmeye.
• PL/SQL VERİ TİPLERİ:
NUMBER: 38 basamağa kadar destek sunan nümerik veri tipidir.
BINARY_INTEGER: Nümerik bir yapıya sahiptir.Number veri tipinden farkı veritabanında daha az yer kaplamasıdır.
CHAR: Karakter veri tipidir.
VARCHAR2: Karakter veri tipidir.Değişken uzunlukta karakterleri tutabilir. Maksimum uzunluğu 32767 bytedır.
LONG: Varchar2 veri tipi gibidir. Fakat karakter tutma sınırı 2GB'a kadar yükselir.
LONG RAW: Long tipinde binary olarak veri tutan veri tipidir.
BOOLEAN: True-False tipi değerleri depolar.
DATE: Tarih ve saat unsurlarını tutabilen veri tipidir.
TIMESTAMP: Date gibi tarih saat değerlerini tutar. Ayrıntılı olarak yüzyıldan saniyeye kadar olan bütün bilgileri tutar.
Evet kısaca PL/SQL'deki blok yapılarını ve veri tiplerini inceledik. Umuyorum ki yararlı olmuştur. Bir sonraki makalemizde görüşmek dileğiyle.
YAZAR: Görkem SEZGİN
27 Mayıs 2010 Perşembe
Yaz Geliştir Zirvesi Mayıs 2010

29 Mayıs 2010, Microsoft İstanbul Ofisi
Kayıt olmak için tıklayın!
3 Şubat 2010 Çarşamba
Askerde
Değerli arkadaşlar!Manisa'da kısa dönem askerlik yaptığım için blogumu güncelleyemiyorum.Ama mayısta bomba gibi döneceğim inşallah.
29 Kasım 2009 Pazar
INETA NEXT TÜRKİYE TURU BAŞLIYOR
INETA NEXT Türkiye turu etkinlik içerikleri açıklandı.
Diyarbakır
5 Aralık
11.00-12.30 Visual Basic 10 Yenilikleri – Daron Yöndem (yazgelistir.com)
14.00-15.30 Windows 7′de neler var? – Muammer Benzeş (birliktegelistir.com)
16.00-17.00 Silverlight 4 – Daron Yöndem (yazgelistir.com)
6 Aralık
11.00-12.30 C# 4.0 Yenilikleri – Erkan Balaban (ceviz.net)
14.00-15.30 WPF 4 ile 3D Animasyon Programlama – Daron Yöndem (yazgelistir.com)
16.00-17.30 ASP.NET 4.0 – Erkan Balaban (ceviz.net)
İstanbul
12 Aralık
10.00-11.00 Silverlight 4 – Daron Yöndem (yazgelistir.com)
11.00-12.00 ASP.NET MVC 2 – Oğuz Yağmur (csharpnedir.com)
14.00-15.00 IIS Media Services – Muammer Benzeş (birliktegelistir.com)
15.15-16.15 Visual Basic 10 Yenilikleri – Daron Yöndem (yazgelistir.com)
13 Aralık
11.00-12.30 ASP.NET 4.0 Yenilikleri – Uğur Umutluoğlu (nedirtv.com)
14.30-15.45 Workflow Foundation 4.0 – Burak Selim Şenyurt (csharpnedir.com)
16.00-17.00 C# 4.0 Yenilikleri – Erkan Balaban (ceviz.net)
17.15-18.00 IE 8 Toolbar Geliştirme – Barış Kanlıca (yazgelistir.com)
Kayseri
19 Aralık
11.00-12.30 C# 4.0 Yenilikleri -Burak Selim Şenyurt (csharpnedir.com)
14.00-15.30 Silverlight 4 – Daron Yöndem (yazgelistir.com)
15.45-16.45 ASP.NET 4.0 – Selçuk Yavuz (ceviz.net)
20 Aralık
11.00-12.30 ASP.NET MVC 2 – Selçuk Yavuz (ceviz.net)
14.00-15.30 Visual Basic 10 Yenilikleri – Daron Yöndem (yazgelistir.com)
15.45-16.45 Workflow Foundation 4.0 – Burak Selim Şenyurt (csharpnedir.com)
Denizli
26 Aralık
11.00-12.30 Silverlight 4.0 – Daron Yöndem (yazgelistir.com)
14.00-15.30 C# 4.0 Yenilikleri – Oğuz Yağmur (csharpnedir.com)
15.45-16.45 Asp.NET 4.0 Yenilikleri – Uğur Umutluoğlu (nedirtv.com)
27 Aralık
11.00-.12.30 Visual Basic 10 Yenilikleri – Daron Yöndem (yazgelistir.com)
14.00-15.30 Asp.NET MVC 2 – Oğuz Yağmur (csharpnedir.com)
15.45-16.45 ASP.NET AJAX 4.0 – Uğur Umutluoğlu (nedirtv.com)
Kayıt için tıklayınız.
24 Kasım 2009 Salı
WPF&Windows Forms
Bu görsel dersimizde WPF teknolojisi ile Windows Formların birlikte kullanımına ait güzel bir örnek uygulama yapacağız. Uygulamamızda WPF kullanarak veritabanı uygulaması yapacağız. Dersimizin sonuna doğru da Microsoft Expression Blend programı ile tasarım ve görsellik olarak ufak 1-2 örnek yapıp uygulamızı daha görsel hale getireceğiz. Aşağıdaki linke tıklayarak dersimizi indirebilirsiniz.
WPF-Windows Forms
WPF-Windows Forms
23 Kasım 2009 Pazartesi
Bir Blog Tanıtımı
Merhaba arkadaşlar. Genç bir kardeşim bana mail atmış blogunu tanıtmak için. Arkadaşımızın adı Murat Şahin. Bu genç arkadaşımı yüreklendirmek adına Murat'ın blogunu sizlerle de paylaşmak istiyorum
Murat'ın Blogu
Murat'ın Blogu
Kaydol:
Kayıtlar (Atom)
Hakkımda
- Görkem Sezgin
- İstanbul, Türkiye
- I was born in Istanbul on August 1981.I have the process of little more about education :-) Firstly,I studied Dumlupınar University Vocational School of Computer Information Systems and then I did vertical transmission into European University of Lefke in TRNC. My department is Computer Engineering. I graduated on 2007.(In additional,I studied Economy at Anadolu University (2006). In 2007,I started Master of Computer Engineering at Beykent University. I graduated Computer Engineering (MSc) in 2009.I have worked at privacy companies as Software Engineering.I did my military service.I have worked in Verisoft Corporated Company.
