PL/SQL, Oracle Database üzerinde SQL komutlarını değişkenler, koşullar, döngüler, prosedürler, fonksiyonlar ve hata yönetimi gibi programlama yapılarıyla birlikte kullanmayı sağlayan prosedürel bir dildir. Açılımı Procedural Language/Structured Query Language olan PL/SQL, Oracle SQL’in prosedürel uzantısıdır.
SQL ile verinin hangi sonuçla sorgulanacağı veya değiştirileceği belirtilirken PL/SQL ile bu işlemlerin hangi sırayla ve hangi kurallara göre yürütüleceği tanımlanabilir. Böylece veritabanı içinde çalışan tekrar kullanılabilir prosedürler, fonksiyonlar, paketler ve tetikleyiciler geliştirilebilir.
Bu rehberde PL/SQL nedir, SQL’den farkı nedir, PL/SQL blokları nasıl yazılır, procedure, function, package, cursor, trigger ve exception ne işe yarar gibi temel soruları kod örnekleriyle açıklıyoruz.
- PL/SQL Nedir?
- PL/SQL Ne İşe Yarar?
- SQL ve PL/SQL Arasındaki Fark Nedir?
- PL/SQL Blok Yapısı Nasıldır?
- PL/SQL Nasıl Çalıştırılır?
- PL/SQL Değişkenleri Nasıl Tanımlanır?
- SELECT INTO Nasıl Kullanılır?
- PL/SQL Koşullu İfadeler Nasıl Kullanılır?
- PL/SQL Döngüleri Nasıl Kullanılır?
- PL/SQL Procedure Nedir?
- PL/SQL Function Nedir?
- Procedure ve Function Arasındaki Fark Nedir?
- PL/SQL Package Nedir?
- PL/SQL Cursor Nedir?
- PL/SQL Trigger Nedir?
- PL/SQL Exception Handling Nedir?
- PL/SQL’de Transaction Yönetimi
- PL/SQL’in Avantajları Nelerdir?
- PL/SQL’in Dezavantajları ve Sınırlamaları Nelerdir?
- PL/SQL Performansı Nasıl İyileştirilir?
- PL/SQL Güvenliği İçin Nelere Dikkat Edilmeli?
- PL/SQL Öğrenmek Zor mu?
- PL/SQL Kimler İçin Uygundur?
- Oracle PL/SQL Eğitimi
- Sonuç: PL/SQL Neden Öğrenilmeli?
PL/SQL Nedir?
PL/SQL, Oracle Database için geliştirilmiş blok yapılı bir programlama dilidir. SQL ifadelerini prosedürel programlama özellikleriyle birleştirir.
PL/SQL kullanılarak şu işlemler gerçekleştirilebilir:
- Değişken ve sabit tanımlama
- IF, CASE gibi koşullu ifadeler kullanma
- LOOP, WHILE ve FOR döngüleri oluşturma
- SQL sorgularının sonuçlarını değişkenlere aktarma
- Stored procedure ve function geliştirme
- İlgili kodları package yapısında toplama
- Cursor kullanarak sorgu sonuçlarını işleme
- Trigger oluşturarak belirli olaylarda kod çalıştırma
- Exception yapısıyla hataları yönetme
- İş kurallarını veritabanı katmanında uygulama
- Tekrarlanan veritabanı görevlerini otomatikleştirme
Oracle Database, SQL, kullanıcılar, tablolar ve veritabanı mimarisi hakkında temel bilgi edinmek için Oracle nedir ve nasıl kullanılır? rehberini inceleyebilirsiniz.
PL/SQL Ne İşe Yarar?
PL/SQL, yalnızca veri sorgulamak yerine veri üzerinde belirli iş kurallarının uygulanmasını sağlar. Özellikle birden fazla SQL komutunun belirli bir akış içinde çalıştırılması gerektiğinde kullanılır.
Örneğin bir sipariş işlemi sırasında şu adımların birlikte yürütülmesi gerekebilir:
- Müşteri kaydını kontrol etmek
- Ürün stok miktarını doğrulamak
- Sipariş kaydını oluşturmak
- Stok miktarını azaltmak
- Ödeme kaydını hazırlamak
- Bir hata oluşursa işlemi geri almak
Bu kurallar PL/SQL procedure veya package içinde tanımlanarak uygulamalar tarafından tekrar tekrar çağrılabilir.
SQL ve PL/SQL Arasındaki Fark Nedir?
SQL ve PL/SQL birlikte çalışır ancak aynı amaçla kullanılmaz. SQL bildirimsel, PL/SQL ise prosedürel bir yaklaşıma sahiptir.
| Özellik | SQL | PL/SQL |
|---|---|---|
| Temel amaç | Veriyi sorgulamak ve değiştirmek | SQL işlemlerini programlama akışı içinde yönetmek |
| Yaklaşım | Bildirimsel | Prosedürel ve blok yapılı |
| Değişken | Temel SQL ifadesinin parçası değildir | Değişken ve sabit tanımlanabilir |
| Koşul | CASE gibi SQL ifadeleri kullanılabilir | IF, ELSIF, ELSE ve CASE kullanılabilir |
| Döngü | Prosedürel döngü bulunmaz | LOOP, WHILE ve FOR döngüleri bulunur |
| Hata yönetimi | Tek başına kapsamlı exception bloğu sunmaz | EXCEPTION bölümüyle hatalar yönetilebilir |
| Tekrar kullanılabilir kod | View ve SQL nesneleri oluşturulabilir | Procedure, function, package ve trigger oluşturulabilir |
| Çalışma biçimi | SQL ifadeleri çalıştırılır | Birden fazla SQL ve programlama ifadesi blok halinde çalıştırılabilir |
Kısaca SQL, veritabanına ne yapılacağını söyler. PL/SQL ise SQL işlemlerinin hangi akış ve kurallar içinde yapılacağını tanımlayabilir.
PL/SQL Blok Yapısı Nasıldır?
PL/SQL kodları bloklar halinde düzenlenir. Temel bir PL/SQL bloğu üç bölümden oluşabilir:
- DECLARE: Değişkenlerin, sabitlerin ve diğer yerel öğelerin tanımlandığı isteğe bağlı bölümdür.
- BEGIN – END: Çalıştırılacak komutların bulunduğu zorunlu bölümdür.
- EXCEPTION: Çalışma sırasında ortaya çıkan hataların yönetildiği isteğe bağlı bölümdür.
DECLARE
v_mesaj VARCHAR2(100);
BEGIN
v_mesaj := 'Merhaba PL/SQL';
DBMS_OUTPUT.PUT_LINE(v_mesaj);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Bir hata oluştu.');
END;
/
Bu örnekte v_mesaj isimli bir değişken oluşturulur ve değişkenin değeri DBMS_OUTPUT.PUT_LINE ile ekrana yazdırılır.
PL/SQL Nasıl Çalıştırılır?
PL/SQL kodları Oracle Database’e bağlanabilen farklı geliştirme araçları üzerinden yazılıp çalıştırılabilir:
- Oracle SQL Developer
- Oracle SQLcl
- Oracle Live SQL
- Oracle APEX SQL Workshop
- Oracle Database bağlantısı bulunan uyumlu geliştirme ortamları
DBMS_OUTPUT.PUT_LINE ile oluşturulan çıktıyı görmek için kullanılan araca göre server output özelliğinin etkinleştirilmesi gerekebilir.
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('PL/SQL bloğu çalıştı.');
END;
/
Sondaki eğik çizgi, kullanılan istemci aracına PL/SQL bloğunun çalıştırılacağını bildirmek amacıyla kullanılabilir. Bu davranış PL/SQL dilinin kendisinden çok kullanılan istemcinin komut işleme biçimiyle ilgilidir.
PL/SQL Değişkenleri Nasıl Tanımlanır?
PL/SQL’de değişkenler genellikle DECLARE bölümünde tanımlanır. Değişken adı, veri türü ve isteğe bağlı başlangıç değeri belirtilir.
DECLARE
v_ad VARCHAR2(50) := 'Ayşe';
v_maas NUMBER(10,2) := 45000;
v_aktif_mi BOOLEAN := TRUE;
BEGIN
DBMS_OUTPUT.PUT_LINE(v_ad);
DBMS_OUTPUT.PUT_LINE(v_maas);
END;
/
%TYPE kullanımı
%TYPE, bir PL/SQL değişkeninin veri türünü tablodaki bir sütundan almasını sağlar. Sütunun veri türü daha sonra değişirse kodun uyarlanmasını kolaylaştırabilir.
DECLARE
v_ad employees.first_name%TYPE;
BEGIN
SELECT first_name
INTO v_ad
FROM employees
WHERE employee_id = 100;
DBMS_OUTPUT.PUT_LINE(v_ad);
END;
/
%ROWTYPE kullanımı
%ROWTYPE, bir tablo veya cursor satırının tüm alanlarını temsil eden kayıt yapısı tanımlamak için kullanılabilir.
DECLARE
v_calisan employees%ROWTYPE;
BEGIN
SELECT *
INTO v_calisan
FROM employees
WHERE employee_id = 100;
DBMS_OUTPUT.PUT_LINE(
v_calisan.first_name || ' ' || v_calisan.last_name
);
END;
/
SELECT INTO Nasıl Kullanılır?
Bir SQL sorgusunun döndürdüğü değerleri PL/SQL değişkenlerine aktarmak için SELECT INTO kullanılabilir.
DECLARE
v_ad employees.first_name%TYPE;
v_maas employees.salary%TYPE;
BEGIN
SELECT first_name, salary
INTO v_ad, v_maas
FROM employees
WHERE employee_id = 100;
DBMS_OUTPUT.PUT_LINE(v_ad || ': ' || v_maas);
END;
/
Bu tür bir sorgunun normalde tek satır döndürmesi beklenir. Hiç satır dönmemesi NO_DATA_FOUND, birden fazla satır dönmesi ise TOO_MANY_ROWS hatasına neden olabilir. Bu durumlar exception bölümünde yönetilebilir.
PL/SQL Koşullu İfadeler Nasıl Kullanılır?
IF, ELSIF ve ELSE
DECLARE
v_satis NUMBER := 125000;
BEGIN
IF v_satis >= 150000 THEN
DBMS_OUTPUT.PUT_LINE('Hedef aşıldı.');
ELSIF v_satis >= 100000 THEN
DBMS_OUTPUT.PUT_LINE('Hedefe yaklaşıldı.');
ELSE
DBMS_OUTPUT.PUT_LINE('Satış hedefin altında.');
END IF;
END;
/
CASE kullanımı
DECLARE
v_seviye CHAR(1) := 'A';
BEGIN
CASE v_seviye
WHEN 'A' THEN
DBMS_OUTPUT.PUT_LINE('Yüksek performans');
WHEN 'B' THEN
DBMS_OUTPUT.PUT_LINE('Orta performans');
WHEN 'C' THEN
DBMS_OUTPUT.PUT_LINE('Gelişim gerekli');
ELSE
DBMS_OUTPUT.PUT_LINE('Tanımsız seviye');
END CASE;
END;
/
PL/SQL Döngüleri Nasıl Kullanılır?
Temel LOOP
DECLARE
v_sayac NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(v_sayac);
v_sayac := v_sayac + 1;
EXIT WHEN v_sayac > 5;
END LOOP;
END;
/
WHILE döngüsü
DECLARE
v_sayac NUMBER := 1;
BEGIN
WHILE v_sayac <= 5 LOOP
DBMS_OUTPUT.PUT_LINE(v_sayac);
v_sayac := v_sayac + 1;
END LOOP;
END;
/
FOR döngüsü
BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;
/
Döngüler yararlı olsa da çok sayıda verinin satır satır işlenmesi performans sorunlarına yol açabilir. Uygun olduğunda tek bir set tabanlı SQL işlemi, gereksiz döngülerden daha verimli olabilir.
PL/SQL Procedure Nedir?
Procedure, belirli bir işlemi gerçekleştirmek için veritabanında saklanan isimlendirilmiş PL/SQL alt programıdır. Parametre alabilir ve uygulamalar ya da diğer PL/SQL kodları tarafından çağrılabilir.
CREATE OR REPLACE PROCEDURE maas_guncelle (
p_employee_id IN employees.employee_id%TYPE,
p_oran IN NUMBER
) AS
BEGIN
UPDATE employees
SET salary = salary * (1 + p_oran)
WHERE employee_id = p_employee_id;
END;
/
Procedure şu şekilde çağrılabilir:
BEGIN
maas_guncelle(
p_employee_id => 100,
p_oran => 0.10
);
END;
/
Gerçek uygulamalarda giriş değerleri, kullanıcı yetkileri, işlem sınırları ve hata senaryoları ayrıca kontrol edilmelidir.
PL/SQL Function Nedir?
Function, bir değer döndürmek üzere geliştirilen PL/SQL alt programıdır. Procedure ile arasındaki temel fark, function yapısında RETURN ile bir sonuç döndürülmesidir.
CREATE OR REPLACE FUNCTION yillik_maas_hesapla (
p_aylik_maas IN NUMBER
) RETURN NUMBER AS
BEGIN
RETURN p_aylik_maas * 12;
END;
/
Fonksiyon PL/SQL içinde çağrılabilir:
DECLARE
v_yillik_maas NUMBER;
BEGIN
v_yillik_maas := yillik_maas_hesapla(50000);
DBMS_OUTPUT.PUT_LINE(v_yillik_maas);
END;
/
Procedure ve Function Arasındaki Fark Nedir?
| Özellik | Procedure | Function |
|---|---|---|
| Temel amaç | Bir işlem veya görev gerçekleştirmek | Bir değer hesaplamak ve döndürmek |
| RETURN | Zorunlu bir dönüş değeri yoktur | Bir değer döndürmesi gerekir |
| Parametreler | IN, OUT ve IN OUT kullanılabilir | Parametre alabilir; temel sonucu RETURN ile verir |
| Kullanım | İş süreçleri ve veri işlemleri | Hesaplama ve sonuç üretme |
PL/SQL Package Nedir?
Package, birbiriyle ilişkili procedure, function, cursor, değişken, sabit, tür ve exception öğelerini ortak bir yapı içinde gruplandıran veritabanı nesnesidir.
Bir package çoğunlukla iki bölümden oluşur:
- Package specification: Dışarıdan erişilebilen öğeleri tanımlar.
- Package body: Procedure ve function gibi öğelerin uygulamasını içerir.
Package specification örneği
CREATE OR REPLACE PACKAGE personel_pkg AS
PROCEDURE maas_guncelle (
p_employee_id IN NUMBER,
p_oran IN NUMBER
);
FUNCTION yillik_maas (
p_aylik_maas IN NUMBER
) RETURN NUMBER;
END personel_pkg;
/
Package body örneği
CREATE OR REPLACE PACKAGE BODY personel_pkg AS
PROCEDURE maas_guncelle (
p_employee_id IN NUMBER,
p_oran IN NUMBER
) AS
BEGIN
UPDATE employees
SET salary = salary * (1 + p_oran)
WHERE employee_id = p_employee_id;
END maas_guncelle;
FUNCTION yillik_maas (
p_aylik_maas IN NUMBER
) RETURN NUMBER AS
BEGIN
RETURN p_aylik_maas * 12;
END yillik_maas;
END personel_pkg;
/
Package kullanımı kodun düzenlenmesini, yeniden kullanılmasını, yetkilendirilmesini ve bakımını kolaylaştırabilir.
PL/SQL Cursor Nedir?
Cursor, bir SQL sorgusunun sonuç kümesi üzerinde işlem yapılmasını sağlayan yapıdır. Oracle, çalıştırılan SQL ifadeleri için örtük cursor yönetimi yapar. Geliştirici tarafından tanımlanan explicit cursor ise sorgu sonuçlarının kontrollü biçimde satır satır işlenmesinde kullanılabilir.
DECLARE
CURSOR c_calisanlar IS
SELECT first_name, salary
FROM employees
WHERE department_id = 50;
BEGIN
FOR r_calisan IN c_calisanlar LOOP
DBMS_OUTPUT.PUT_LINE(
r_calisan.first_name || ': ' || r_calisan.salary
);
END LOOP;
END;
/
Cursor kullanmadan önce işlemin tek bir SQL ifadesiyle gerçekleştirilebilip gerçekleştirilemeyeceği değerlendirilmelidir. Büyük veri kümelerinde gereksiz satır bazlı işlemler performansı düşürebilir.
PL/SQL Trigger Nedir?
Trigger, belirlenen bir veritabanı olayı gerçekleştiğinde Oracle Database tarafından otomatik olarak çalıştırılan PL/SQL kodudur.
Trigger’lar şu olaylarla ilişkilendirilebilir:
- INSERT
- UPDATE
- DELETE
- Veritabanı veya şema düzeyindeki belirli olaylar
CREATE OR REPLACE TRIGGER trg_maas_kontrol
BEFORE UPDATE OF salary ON employees
FOR EACH ROW
BEGIN
IF :NEW.salary < 0 THEN
RAISE_APPLICATION_ERROR(
-20001,
'Maaş negatif olamaz.'
);
END IF;
END;
/
Trigger’lar denetim ve veri bütünlüğü senaryolarında yararlı olabilir. Bununla birlikte otomatik çalıştıkları için yoğun ve karmaşık trigger kullanımı sistem davranışını anlamayı ve hata ayıklamayı zorlaştırabilir.
PL/SQL Exception Handling Nedir?
Exception handling, PL/SQL bloğu çalışırken ortaya çıkan hataların kontrollü biçimde yönetilmesini sağlar. Hatalar yönetilmediğinde işlem beklenmedik biçimde sonlanabilir.
DECLARE
v_ad employees.first_name%TYPE;
BEGIN
SELECT first_name
INTO v_ad
FROM employees
WHERE employee_id = 999999;
DBMS_OUTPUT.PUT_LINE(v_ad);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Çalışan bulunamadı.');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('Birden fazla kayıt bulundu.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(
'Hata: ' || SQLERRM
);
END;
/
Sık kullanılan önceden tanımlanmış exception örnekleri şunlardır:
NO_DATA_FOUNDTOO_MANY_ROWSZERO_DIVIDEDUP_VAL_ON_INDEXINVALID_NUMBERVALUE_ERROR
WHEN OTHERS tüm diğer hataları yakalayabilir; ancak hatayı açıklamadan gizlemek için kullanılmamalıdır. Hata kaydedilmeli veya uygun şekilde yeniden yükseltilmelidir.
PL/SQL’de Transaction Yönetimi
PL/SQL içinde gerçekleştirilen veri değişiklikleri transaction kurallarına tabidir. Temel komutlar şunlardır:
- COMMIT: Değişiklikleri kalıcı hale getirir.
- ROLLBACK: Henüz kalıcılaştırılmamış değişiklikleri geri alır.
- SAVEPOINT: Transaction içinde geri dönülebilecek bir nokta oluşturur.
BEGIN
UPDATE accounts
SET balance = balance - 1000
WHERE account_id = 10;
UPDATE accounts
SET balance = balance + 1000
WHERE account_id = 20;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END;
/
Transaction kontrolünün procedure içinde mi yoksa çağıran uygulamada mı yapılacağı uygulama mimarisine göre belirlenmelidir. Yeniden kullanılabilir procedure’lerin içinde kontrolsüz COMMIT kullanmak, daha geniş transaction akışlarını bozabilir.
PL/SQL’in Avantajları Nelerdir?
- SQL ile programlama yapılarını aynı blokta birleştirir.
- İş mantığının veriye yakın çalışmasını sağlar.
- Procedure, function ve package ile kodun tekrar kullanılmasına yardımcı olur.
- Birden fazla işlemin tek çağrıyla yürütülmesini sağlayabilir.
- Exception yapısıyla kontrollü hata yönetimi sunar.
- Veritabanı nesneleri üzerinden yetkilendirme yapılmasına imkân verir.
- Trigger kullanılarak belirli olaylara otomatik tepki verilebilir.
- Doğru tasarlandığında uygulama ile veritabanı arasındaki çağrı sayısını azaltabilir.
PL/SQL’in Dezavantajları ve Sınırlamaları Nelerdir?
- Temel olarak Oracle ekosistemine özgüdür.
- İş mantığının tamamının veritabanına taşınması bakım sorunları yaratabilir.
- Yoğun satır bazlı işlemler performansı düşürebilir.
- Karmaşık package ve trigger yapılarında hata ayıklamak zorlaşabilir.
- Yanlış transaction yönetimi veri tutarlılığını etkileyebilir.
- Dinamik SQL ve kullanıcı girdileri güvenlik riski oluşturabilir.
- Performans için SQL, indeks ve execution plan bilgisi gerekebilir.
PL/SQL Performansı Nasıl İyileştirilir?
PL/SQL kodunun performansı yalnızca programlama yapısına değil, çalıştırdığı SQL ifadelerine de bağlıdır.
- Satır satır işlem yerine set tabanlı SQL kullanmayı değerlendirin.
- Sorguların execution plan’larını inceleyin.
- Uygun indekslerin bulunup bulunmadığını kontrol edin.
- Döngü içinde tekrar tekrar SQL çalıştırmaktan kaçının.
- Büyük veri işlemlerinde
BULK COLLECTveFORALLkullanımını değerlendirin. - Gereksiz dinamik SQL kullanmayın.
- Sorgularda ihtiyaç duyulmayan sütunları çekmeyin.
- Procedure ve package sorumluluklarını sınırlı tutun.
- Hataları sessizce yok saymak yerine kaydedin ve yönetin.
- Performans ölçümü yapmadan optimizasyon kararı vermeyin.
PL/SQL Güvenliği İçin Nelere Dikkat Edilmeli?
- Kullanıcılara yalnızca ihtiyaç duydukları yetkileri verin.
- Dinamik SQL içinde kullanıcı girdilerini doğrudan birleştirmeyin.
- Bind variable kullanmayı tercih edin.
- Procedure ve package çalıştırma yetkilerini kontrol edin.
- Gizli verileri hata mesajlarına veya loglara yazmayın.
- Definer rights ve invoker rights farkını dikkate alın.
- Trigger ve otomatik işlemler için denetim kaydı tutun.
- Kod değişikliklerini sürüm kontrolü ve test süreçleriyle yönetin.
PL/SQL Öğrenmek Zor mu?
Temel SQL bilgisi bulunan bir kullanıcı için PL/SQL’in blok yapısını ve temel kontrol ifadelerini öğrenmek zor değildir. Ancak üretim ortamında güvenilir PL/SQL geliştirmek için yalnızca sözdizimi yeterli olmaz.
İleri düzey kullanım için şu konuların öğrenilmesi gerekir:
- Oracle SQL
- Veri modelleme
- Procedure ve function tasarımı
- Package mimarisi
- Cursor ve toplu veri işleme
- Exception handling
- Transaction yönetimi
- Yetkilendirme ve güvenlik
- SQL performans optimizasyonu
- Test ve hata ayıklama
PL/SQL Kimler İçin Uygundur?
- Oracle veritabanı geliştiricileri
- SQL geliştiricileri
- Backend geliştiriciler
- Veritabanı yöneticileri
- ERP ve kurumsal uygulama geliştiricileri
- Veri ambarı ve ETL geliştiricileri
- İş zekâsı uzmanları
- Oracle uygulamalarını yöneten teknik ekipler
Oracle PL/SQL Eğitimi
PL/SQL’i kurumsal uygulamalarda kullanmak için değişkenler ve döngülerin yanında procedure, function, package, cursor, trigger, exception handling ve performans konularında uygulama yapmak gerekir.
BlueMark Academy’nin Oracle PL/SQL Programming Eğitimi; Oracle üzerinde programlama yapmak, yeniden kullanılabilir veritabanı kodları geliştirmek ve PL/SQL becerilerini ilerletmek isteyen profesyonellere yöneliktir.
Oracle SQL, PL/SQL, veritabanı yönetimi, yedekleme ve performans eğitimlerini birlikte incelemek için Oracle Eğitimleri sayfasını ziyaret edebilirsiniz.
Sonuç: PL/SQL Neden Öğrenilmeli?
PL/SQL, Oracle Database üzerinde çalışan kurumsal uygulamalar için önemli bir programlama yetkinliğidir. SQL sorgularını koşullar, döngüler, hata yönetimi ve yeniden kullanılabilir program birimleriyle birleştirerek karmaşık veritabanı işlemlerinin yönetilmesini sağlar.
PL/SQL öğrenmeye başlarken önce Oracle SQL ve ilişkisel veritabanı mantığını kavramak; ardından anonim bloklar, değişkenler, koşullar, döngüler, procedure, function, package, cursor, trigger ve exception konularında ilerlemek en sağlıklı yaklaşımdır.
PL/SQL nedir?
PL/SQL, Oracle SQL’i değişkenler, koşullar, döngüler, prosedürler, fonksiyonlar ve hata yönetimi gibi programlama özellikleriyle genişleten blok yapılı prosedürel bir dildir.
PL/SQL ne işe yarar?
PL/SQL; Oracle Database üzerinde iş kuralları uygulamak, birden fazla SQL komutunu belirli bir akışta çalıştırmak, procedure, function, package ve trigger geliştirmek ve hataları yönetmek için kullanılır.
SQL ve PL/SQL arasındaki fark nedir?
SQL veriyi sorgulamak ve değiştirmek için kullanılan bildirimsel bir dildir. PL/SQL ise SQL komutlarını değişkenler, koşullar, döngüler ve hata yönetimi gibi prosedürel programlama yapılarıyla birlikte kullanır.
PL/SQL sadece Oracle’da mı kullanılır?
PL/SQL, Oracle tarafından Oracle Database ve ilişkili Oracle ürünleri için geliştirilmiştir. Diğer veritabanlarının T-SQL veya PL/pgSQL gibi farklı prosedürel dil ve uzantıları bulunur.
PL/SQL blokları hangi bölümlerden oluşur?
Bir PL/SQL bloğu isteğe bağlı DECLARE bölümü, zorunlu BEGIN-END çalışma bölümü ve isteğe bağlı EXCEPTION hata yönetimi bölümünden oluşabilir.
PL/SQL procedure nedir?
Procedure, belirli bir işlemi gerçekleştirmek için veritabanında saklanan isimlendirilmiş PL/SQL alt programıdır. Parametre alabilir ve uygulamalar veya başka PL/SQL programları tarafından çağrılabilir.
PL/SQL function nedir?
Function, bir değer hesaplayarak RETURN ifadesiyle sonuç döndüren PL/SQL alt programıdır. Hesaplama, doğrulama ve tekrar kullanılan veri işlemleri için geliştirilebilir.
PL/SQL package nedir?
Package; ilişkili procedure, function, cursor, değişken, sabit, veri türü ve exception öğelerini ortak bir veritabanı nesnesinde gruplandıran yapıdır.
PL/SQL trigger nedir?
Trigger; INSERT, UPDATE, DELETE veya belirli sistem olayları gerçekleştiğinde Oracle Database tarafından otomatik olarak çalıştırılan PL/SQL kodudur.
PL/SQL öğrenmek zor mu?
Temel SQL bilgisi olanlar PL/SQL’in blok yapısını ve temel komutlarını öğrenebilir. Profesyonel kullanım için procedure, package, transaction, performans, güvenlik ve hata yönetimi konularında uygulama yapmak gerekir.
PL/SQL öğrenmeden önce SQL bilmek gerekir mi?
PL/SQL, SQL komutlarını programlama yapılarıyla birlikte kullandığı için temel Oracle SQL bilgisine sahip olmak öğrenme sürecini önemli ölçüde kolaylaştırır.
PL/SQL nerede yazılır ve çalıştırılır?
PL/SQL kodları Oracle SQL Developer, SQLcl, Oracle Live SQL, Oracle APEX SQL Workshop ve Oracle Database bağlantısı bulunan uyumlu geliştirme ortamlarında yazılıp çalıştırılabilir.