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, 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:

  1. Müşteri kaydını kontrol etmek
  2. Ürün stok miktarını doğrulamak
  3. Sipariş kaydını oluşturmak
  4. Stok miktarını azaltmak
  5. Ödeme kaydını hazırlamak
  6. 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.

ÖzellikSQLPL/SQL
Temel amaçVeriyi sorgulamak ve değiştirmekSQL işlemlerini programlama akışı içinde yönetmek
YaklaşımBildirimselProsedürel ve blok yapılı
DeğişkenTemel SQL ifadesinin parçası değildirDeğişken ve sabit tanımlanabilir
KoşulCASE gibi SQL ifadeleri kullanılabilirIF, ELSIF, ELSE ve CASE kullanılabilir
DöngüProsedürel döngü bulunmazLOOP, WHILE ve FOR döngüleri bulunur
Hata yönetimiTek başına kapsamlı exception bloğu sunmazEXCEPTION bölümüyle hatalar yönetilebilir
Tekrar kullanılabilir kodView ve SQL nesneleri oluşturulabilirProcedure, function, package ve trigger oluşturulabilir
Çalışma biçimiSQL ifadeleri çalıştırılırBirden 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?

ÖzellikProcedureFunction
Temel amaçBir işlem veya görev gerçekleştirmekBir değer hesaplamak ve döndürmek
RETURNZorunlu bir dönüş değeri yokturBir değer döndürmesi gerekir
ParametrelerIN, OUT ve IN OUT kullanılabilirParametre alabilir; temel sonucu RETURN ile verir
Kullanımİş süreçleri ve veri işlemleriHesaplama 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_FOUND
  • TOO_MANY_ROWS
  • ZERO_DIVIDE
  • DUP_VAL_ON_INDEX
  • INVALID_NUMBER
  • VALUE_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 COLLECT ve FORALL kullanı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.