PL-SQL Notes | 1

PL-SQL öğrenmeye çalıştığım bu süreçte tuttuğum notları paylaşacağım. Umarım devamlılığı olur.


⭐ func, proc, views, table, index –> veri tabanı boyutunda yer alır.


Kodlar Bu İfadelerin Arasına Yazılır:

DECLARE    (zorunlu değil)

BEGIN    (zorulu)

    -- executing, buraya çalışacak kodlar yazılır.

    EXCEPTION    (zorunlu değil)

    -- hata oluşması durumunda çalışır.

END;

Yorum satırı

Tek satır:    --          Çok satır:    /* */

Değişken Tanımlama

DECLARE

    değişken_adı değişken_tipi;
    değişken_adı değişken_tipi := değeri;

BEGIN

    -- burada en az bir işlem parçacığı yazılmalı.

END;

Örnek

DECLARE

    v_adi varchar2(20);            -- 1* Açıklanacak
    v_soyadi varchar(30);
    v_yasi number := 25;
    v_dtarihi date;
    v_boyu number(3,2) := 1,756;   -- 2* Açıklanacak
    v_kilo float := 0;
    v_maas number(5.2) := 0;
    v_vergi_tutari number := 0;

BEGIN

    v_adi := 'Rumeysa';
    v_soyadi := 'Aydoğdu';
    v_dtarihi := to_date('10.12.2021','dd.MM.yyyy');
    v_kilo := 59.50;
    v_maas := 123.55;
    v_vergi_tutari := round(v_maas * 15/100, 2);

    dbms_output.put_line('Personelin Adı: ' || v_adi);    -- 3* Açıklanacak

END;

Açıklamalar:

  • 1* VARCHAR2, Oracle veritabanındaki VARCHAR ile aynıdır. Temel fark, VARCHAR’ın ANSI Standardı ve VARCHAR2’nin Oracle standardı olmasıdır. VarChar2 veri türü, karakter değerlerini depolamak için kullanılır. Değişken uzunluklu bir veri türüdür, yani yürütme zamanında karakter değişkeninin boyutunu değiştirebiliriz.
  • 2* number(x,y) değeri olan sayıyı yuvarlayıp alır. Yani v_boyu number(3,2) := 1.756; doğrudur. Çıktısı 1.75 olur. number(x,y) ifadesinde x, virgülden önceki ve sonraki tüm sayıların kaç adet olacağını ifade eder. y ise virgülden sonra kaç adet sayı olacağını. Dolayısıyla x-y = virgülden önceki sayı adedine denk gelir. Bir örnek vermek gerekirse, v_boyu number(3,2) := 12.6; ifadesi HATALIDIR. Virgülden önce 1 adet sayı olmalı (3-2=1)
  • 3* || yani OR operatörü burada (+) gibi, sağındaki ve solundaki iki ifadeyi birleştirmek için kullanılıyor.
  • dbms_output.put_line() ile çıktı verebiliyoruz