Bir sunum hazırlarken yapılanları buraya da eklemek iyi olur. Yoksa bu gidişle hiçbirşey eklemeden duracak bu blog :) Sırayı geçtim artık ne yaparsak o :))
Neyse gelelim bugün yaptıklarımıza ve tanımlara;
PL/SQL nedir :
SQL dilinin daha da gelişmiş halidir. Bünyesinde SQL cümlelerinin, döngülerin, kontrol ifadelerinin, ve diğer yapıların kullanıldığı blok yapısında olan bir dildir. Fonksiyon, prosedür, trigger tanımlamaları gibi bir çok özelliğiyle uygulamalarda kullanabileceğimiz bir yapısı vardır.
Temel bir PL-SQL yapısı:
IS
Burada değişkenler, tipler, diğer tanımlamalar yapılır
BEGIN
Asıl işin yapıldığı kısımdır. Kontrol yapıları, SQL cümleleri, döngüler...
EXCEPTION
İşleyiş anında oluşan hataların yakalandığı yerdir. İsteğe bağlıdır
END;
İşlemin bitirilmesidir Burada değişkenler, tipler, diğer tanımlamalar yapılır
BEGIN
Asıl işin yapıldığı kısımdır. Kontrol yapıları, SQL cümleleri, döngüler...
EXCEPTION
İşleyiş anında oluşan hataların yakalandığı yerdir. İsteğe bağlıdır
END;
PL/SQL 'de bir procedure örneği (Bu benim kurstan kalan bir örneği tekrar yapışım:) en akılda kalıcı örnek benim için buydu )
İki tane bir biri ile ilişkili tablo oluşturmuş olalım.
Ve biz kursiyer tablosuna bu şekilde veri eklemiş olalım.
Taksit tablosuna bir taksilendirmeyi eklemek istiyorum .Karşımda kursiyer ile ilişkili bir tablo bunu yapmanın en güzel yolu SP olacaktır.
1. Stored Procedure Oluştururken öncelikle CREATE PROCEDURE deyimi
kullanılır. Ve ardından Procedure için bir isim tanımlanır. Parantez açılır ve ilgili parametreler
tanımlanır. Sonra Parantez kapatılır ve IS deyiminden sonra eğer hesaplamam
gereken değerler varsa onlar tanımlanır.
CREATE PROCEDURE
taksitlendir (KURSIYER_REFNO INT ,TAKSIT_ADET INT ,TUTAR FLOAT
,ILK_TARIH DATE ,VADE_GUN INT )
IS
TAKSIT_TUTAR
FLOAT;
BAS_TARIH
DATE;
TAKSIT_NO
INT:=0;
2. IS ile hesaplanması gereken
parametreler tanımlanırsa. Hesaplamaya başlamayı BEGIN ile yapıyoruz. Ben burada hesaplama diyorum ancak yapılması
gereken işlem demek daha uygun olur. Eğer herhangi bir şartla değişecek
parametremiz varsa o da WHILE (-olduğu sürece) LOOP(döngümüz) ile ifade edilir.
BEGIN
TAKSIT_TUTAR:=TUTAR/TAKSIT_ADET;
BAS_TARIH:=ILK_TARIH;
WHILE (TAKSIT_NO<TAKSIT_ADET)
LOOP
TAKSIT_NO:=TAKSIT_NO+1;
INSERT INTO TAKSIT(TAKSIT_REFNO,KURSIYER_REFNO,TAKSIT_NO,TARIH,BORC,ODENEN)
VALUES(SQ_TAKSIT.NEXTVAL,KURSIYER_REFNO,TAKSIT_NO,BAS_TARIH,TAKSIT_TUTAR,0);
BAS_TARIH:=BAS_TARIH+VADE_GUN;
END LOOP;
END;
Ve yukarıdaki ekran görüntümüzdeki gibi çalıştırdığımızda
Taksit tablosuna istediğimiz işlemler sonucu 21 referans numaralı kursiyerin bilgilerinin eklendiğini görebiliriz.
:) Şimdilik bu kadar olsun geniş anlatımları geniş zamanlara bırakalım.




Hiç yorum yok:
Yorum Gönder