SQLPL Nedir?

Acılımı Procedural Language extensions to the Structured Query Language olan SQLPL Turkce'de “Yapılandırılmış Sorgu Diline Yonelik Prosedurel Dil Uzantıları anlamını taşıyor. SQLPL, SQL'e yapısal dillerin ozelliklerinin eklenmesiyle meydana getirilen bir programlama dilidir.

- Oracle veri tabanın yer alan SQLPL, SQL ve Java ile birlikte uc ana programlama dilinden bir tanesidir.

- SQL, RDBMS'te veri sorgulamak ve guncellemek adına oldukca populer bir dildir fakat kısıtlıdır. SQLPL de tam bu noktada devreye giriyor. SQL kısıtlamalarının onune gecmek icin SQL dilinde bulunan pek cok prosedure yapı ekleyen SQLPL, Oracle'ın veri tabanında kritik iş uygulamaları ve iş mantığı oluşturmak icin daha kapsayıcı bir programlama dili sunar.

- Son derece yapılandırılmış, kocaman bir yapıya burundurulmuş, okunabilir bir dil olan SQLPL'i oğrenmesi de oldukca kolaydır.

SQLPL Nerelerde Kullanılır?
Genişletmek icin tıkla ...


- Oracle veri tabanı gelişimi icin standart ve taşınabilir bir dil olduğundan, Oracle tabanında calışan herhangi bir program geliştirdiğiniz takdirde hicbir değişiklik yapmadan hızlıca diğer bir Oracle veri tabanına aktarabilirsiniz.

- Gomulu bir dil olduğu icin sadece Oracle veri tabanında calıştırılabilir. C#, C++ veya Java gibi bağımsız bir dil olarak geliştirilmemiştir. Bu nedenle, Oracle veri tabanı olmayan bir sistemde SQLPL programı geliştirilemez.

- Yuksek performans veren, entegre bir dildir. Diğer programlama dillerinde başka işler yapabilirsiniz fakat, Oracle veri tabanıyla etkileşime girildiğinde, verimli bir şekilde kod yazmak icin en uygun dil SQLPL'dir. Ozellikle veri tabanının performansının artmasına katkı sağlayan FORALL deyimi gibi SQLPL'e ozgu yapıları kullanabilirsiniz.

- Birden fazla veri satırını hızlı bir bicimde değiştirmek icin koleksiyonları kullanan, DELETE'ler, INSDERT'ler ve UPDATE'ler, FORALL olarak adlandırılır.

- Tek bir alımla birden fazla satır alan ve veri alma hızını yukselten select ifadelere Bulk Colelcr adı verilir.

SQLPL'in Yararları Nelerdir?
Genişletmek icin tıkla ...


- SQL prosedurel bir yapıya sahip değildir fakat, SQLPL de tam tersine prosedurel yapı bulunur. Kısacası, 'if else, ehile, for' gibi kontrol mekanizmalarına izin verir.

- Tek seferde birden cok işlem yapabildiği icin daha hızlı sonuc alınır.

- Oracle Forms Oracle Report gibi iş araclarına kolaylıkla entegre olabilir.

- Loglama işlemlerinin gercekleştirilmesi gibi pek cok yararı vardır.

Bir SQLPL Kodu Nasıl Calıştırılır?
Genişletmek icin tıkla ...

SQLPL engine kodunun gorevi byte kodunu derlemektir. Derleme işleminin ardından meydana gelen byte kodu calıştırılır. Bu motor sadece bir Oracle veri tabanı sunucusuna ya da Oracle Forms, Oracle Apex gibi uygulama geliştirme araclarına kurulabilir.

Oracle veri tabanı sunucusuna bir kod bloğu yollandığında, SQLPL engine, kodu derlemek ve yurutmek icin SQL motoruyla beraber calışır. Bu motorun temel işlevi prosedurel ogeleri calıştırmasıdır. SQL motoru da SQL ifadelerini işler.


SQLPL'in Ana Ozellikleri Nelerdir?
Genişletmek icin tıkla ...

SQL programlama dilinin veri sorgulama gucuyle değiştirme gucu, yine SQL'in fonksiyonel yaklaşımı ile birleşir. Bu durumu bir ornekle acıklamak gerekirse; 2 farklı SQL sorgusu olduğunu varsayın. Bu koşullardan bir tanesi doğruysa 1. SQL, yanlışsa da 2. SQL'in calışmasını istiyorsanız, bu noktada SQL ile SQLPL'in guclerinin birleşmesi gerekir. İcerisinde bulunan 'If Else Then' yapısı sayesinde bu birleşmeyi rahatca gercekleştirebilirsiniz. Daha karmaşık problemlerde de tum sorunların yonetilebilmesi adına parcalara ayrılması gerekir. Kısacası SQLPL'in gucune ve prosedurel yaklaşımına ihtiyac vardır.


1. Error Handling (Hata Yonetimi)

SQLPL'de hata yonetimi son derece anlaşılır bir dilde yapılır. Bir hata meydana geldiğinde SQLPL kodu, anında bir hata fırlatır. Bunlara ORA hataları denir. ORA-04030 hatası ve ORA-00932 hatası bu hatalara birer ornektir. Bu hataların cozume kavuşturulabilmesi icin dikkatli okuma yapılmalıdır. Buna ek olarak kullanıcılar, kendi hatalarını oluşturup, bu hatalara isim verip, diledikleri zaman diledikleri koşulda kendilerine hata olarak donmelerini sağlayabilirler.

2. Blok Structure (Blok Yapısı)

Her SQLPL programının icerisinde SQL ve SQLPL ifadeleri yer alır. Tum bunlar SQLPL bloğunu meydana getirir. Bu blok toplamda 4 aşamadan oluşur; Declare, Begin, Exception ve End.

Declare: Değişkenler bu bolumde bildirilir.

Begin: SQLPL bloğunun başlamasında anahtar kelime 'begin'dir. 'End' anahtarıyla da sona erer. Programın temel mantığı bu bolumde işler. İcerisinde; SQL sorguları, şartlı ifadeler ve donguler yer alır.

Exception: İstisnai durumların ortaya cıkabileceği bolumdur. Programda meydana gelen hatalar bu bolumde ayrıştırılır.

End: SQLPL bloğunu bitiren bolumdur.

3. Constants and Variables (Değişkenler ve Sabitler)

Diğer programlama dillerinin de icerisinde barındırdığı bu ozellik, SQLPL dilinde de kullanıcılara sabit ya da değişkenleri tanımlama ve bunları kod blokları icerisinde kullanabilme imkanı sunar. Değişkenler, kod bloğu icerisinde değiştirilebilse de sabitler değiştirilemez.

4. Subprograms (Alt Programlar)

Kullanıcının ihtiyac duyduğu anda cağırabildiği kod bloğuna alt program adı verilir. Bu bir fonksiyon ya da prosedur olabilir. Ornek erecek olursak; Bir fonksiyonun ağırlıklı ortalama bir işlem gercekleştirdiğini varsayın. Pek cok yerde bu işlemi hayata gecirebilmek adına oluşturduğunuz fonksiyonu cağırmaya ihtiyac duyabilirsiniz. Fonksiyon ve prosedurler, surekli aynı işlemi yazmak yerine, aynı işlemi tek seferde yazıp devamlı cağırabileceğiniz alt programlardır.

5. Packages (Paketler)

Bir paket, icerisinde sabitleri ya değişkenleri, fonksiyonları, hataları, cursorları, prosedurleri ve tipleri bulunduran bir şema objesidir. Kısacası bir paketi, bir uygulama gibi değerlendirebiliriz. Tabii kendi paketlerinizi yazmanız da mumkun.

Bu paketler 2 aşamada meydana getirilirler. Bunlarda ilki, paketin tanımının yani icerisinde kullanacağınız butun yapıları kısaca tanımlamak zorunda olduğunuz pakettir. İkinci paket ise paketin govde kısmıdır. Bu kısım, butun kodların yazıldığı yerdir.


6. Triggers (Tetikleyiciler)

Bu durumu bir ornekle acıklamak gerekirse, bir Oracle veri tabanında bir olayın gercekleştiğini be bu olayın gercekleşme anını surekli olarak izleyemediğinizi varsayın. Hatta bu olay bir veri değişikliği olsun. Bu veri değiştirildiğinde gercekleşmesini istediğiniz olayları trigger, yani tetikleyici olarak tanımlamalısınız. Boylelikle verilerinizde meydana gelen değişiklikleri tetikleyicilerle rahatca yonetebilirsiniz.
Veri Tabanında Gercekleştirilen İşlemler
Genişletmek icin tıkla ...


DDL (Veri Tanımlama Dili): Veri tabanının yapısını, şema ve tabloları tanımlanmasında kullanılır.

DML (Veri Duzenleme Dili): Veri tabanı icerisinde yer alan verilerin, tablo ve şemaların yonetilmesinde kullanılır.

TCL (İşlem Kontrol Dili): Transaction veri tabanında meydana gelen işlem veya işlemlerdir. Bu işlemler sayesinde tablo, şema gibi depo birimlerinde veya datalar uzerinde yapılacak değişikliklerin gecerli olmasını ya da iptal edilmesini sağlayabilirsiniz. Bu sayede transactionları kontrol etmiş olursunuz.

DCL (Veri Kontrol Dili): Veri tabanındaki datalara erişimi kontrol etmek icin kullanılan komutlardır.