Oracle PL/SQL Vaka Bildirimi

Oracle Pl Sql Vaka Bildirimi



Kontrol akışı, programlamadaki birincil yapı taşlarından biridir. Bir programda çeşitli kod bloklarının yürütülme sırasını tanımlar.

Çoğu programlama dili gibi, Oracle PL/SQL dili de IF-THEN, CASE, FOR, WHILE, vb. gibi çeşitli kontrol akışı ifadeleri sağlar.







Bu yazıda, Oracle sorgularımızda kontrol akışını tanıtmak için PL/SQL'de CASE deyimiyle nasıl çalışacağımızı öğreneceğiz.



CASE Bildirimine Giriş

CASE ifadesi, bir dizi ifade tanımlamanıza olanak tanır. Case ifadesi daha sonra belirtilen koşula göre yürütülecek bir sıra seçer.



Okunabilirliği korurken bir dizi if-then bloğu bildirmenin daha etkili bir yolu olarak düşünün.





CASE deyiminin sözdizimini Oracle'da aşağıdaki gibi ifade edebiliriz:

DURUM
NE ZAMAN koşul1 SONRA sonuç1
NE ZAMAN koşul2 SONRA sonuç2
...
BAŞKA sonuç
SON

CASE deyimi, bu söz dizimindeki WHEN yan tümcelerindeki her koşulu değerlendirir.



İfade eşleşen bir ifade bulursa, eşleşen sonucu döndürür. Ancak bazı durumlarda case ifadesi eşleşen bir koşul bulamayabilir. Böyle bir senaryoda ifade, ELSE bloğunda tanımlanan sonucu yürütür.

NOT : ELSE bloğu isteğe bağlıdır. Mevcut değilse, veritabanı motoru aşağıdaki sözdizimini kullanır:

BAŞKA:
CASE_NOT_FOUND YÜKSELTME;

Bu, veritabanı motorunun bir istisna oluşturmasına ve eşleşen koşul olmadığında yürütmeyi duraklatmasına olanak tanır.

Örnek 1: CASE Bildirimi Temel Örnek

Bu örnek, Oracle'daki case operatörünün temel bir örnek kullanımını gösterir:

bildirmek
yaş numarası;
giriş karakteri(10);
başlamak
yaş := 24;
vaka yaşı
ne zaman 17 o zaman
giriş := 'reddedildi';
ne zaman 24 o zaman
giriş := '9.99';
ne zaman 45 o zaman
giriş :='15.99';
Başka
giriş := 'izin verilmez';
son durum;
DBMS_OUTPUT.PUT_LINE(giriş);
son;

Sağlanan çizim, eşleşen herhangi bir koşulu test etmeli ve karşılık gelen durumu döndürmelidir. Örneğin, eşleştirme koşulu 24 olduğundan, yan tümce aşağıdaki gibi döner:

9.99

Örnek 2: Veritabanı Tablolu CASE Bildirimi

Bu örnek, bir veritabanı tablosuyla birlikte case deyimini kullanır.

ad, soyad, maaş seçin,
durum
maaş 2500 olduğunda 'Yüksek'
başka 'Bilinmeyen'
maaş_status olarak sonlandır
ÇALIŞANLAR'dan;

Sağlanan sorgu, çalışanların tablosundan maaş aralığını test etmek için vaka bildirimini kullanır.

Ortaya çıkan değer aşağıda gösterildiği gibidir:

Çözüm

Bu gönderide, çeşitli koşulları test etmek ve biri doğruysa bir eylemi gerçekleştirmek için Oracle case deyimini nasıl kullanacağınızı öğrendiniz.