——–PL/SQL içerisinde üç tip “IF” yapısı kullanılır———–
1- IF şart THEN
Komutlar
END IF
——————————-
2-IF şart THEN
komutlar
ELSE
Şartın gerçekleşmemesi halindeki komutlar
END IF
——————————-
3-IF şart THEN
komutlar
ELSEIF şart
komutlar
END IF
——PL/SQL içerisinde temel LOOP, FOR ve WHILE döngüleri vardır——–
LOOP
Komut1
…..
KomutN
GOTO etiket adı
EXIT [WHEN şart]
END LOOP
—————————————
FOR sayac IN [REVERSE] başlangıç..bitiş
LOOP
Komut1
…
KomutN
EXIT [WHEN şart]
END LOOP
—————————————
WHILE şart LOOP
Komut1
…
KomutN
END LOOP
———————–Hata Durumları—————————–
EXCEPTION
WHEN THEN
Komutlar
—————————————————————————–
Oracle tarafından tanımlı çok kullanılan hata durumları:
DUP_VAL_ON_INDEX Tekil olması gereken bir alana bu durumu ihlal eden bir kayıt eklenmeye çalışıldığında ortaya çıkar.
INVLAID_CURSOR “OPEN” komutu ile açılmamış bir imleç ile işlem yapılmaya çalışıldığında ortaya çıkar.
INVALID_NUMBER Değişkenin tanımından daha büyük bir sayı değişkene atanmak istendiğinde ortaya çıkar.
NO_DATA_FOUND SQL sonucu kayıt dönmediği zaman ortaya çıkar.
ZERO_DIVIDE Sıfıra bölme işleminde ortaya çıkan durumdur.
TOO_MANY_ROWS Bir kayıt dönmesi gereken SQL ‘den birden fazla kayıt döndüğünde ortaya çıkan durumdur.
VALUE_ERROR Numerik veya karakter tipli bir değişkenin diğerinin yerine kullanılmaya çalışıldığı durumdur.
CURSOR_ALREADY_OPEN Açık bir imlecin tekrar açılmaya çalışıldığı durumdur.
LOGIN_DENIED Veritabanına yanlı kullanıcı adı ve şifre ile bağlanılmaya çalışıldığı durumdur.
NOT_LOGGED_ON Veritabanına bağlanmadan SQL cümlesi çalıştırıldığında ortaya çıkan durumdur.
OTHERS EXCEPTION bölümünde yazılan hata durumlarından hiç biri oluşan hatayla eşleşmediğinde bu durum işleme girer.
———————————————————–
DECLARE
a NUMBER;
BEGIN
select hasta_no into a from hastalar where hasta_adi=’ahmet’;
IF a<200 THEN
raise_application_error(-20090,a||’ Küçük numaralı hasta!’);
END IF;
END;