——–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;