Başlangıç > Database, Forms, Oracle, PL/SQL, Reports > pl/sql de goto kullanımı

pl/sql de goto kullanımı


Merhaba
Pl/Sql ortamında yazdığımız programlar içerisinde bir kontrolü tekrar tekrar belirli bir şarta göre yapmamız gerekebilir. Bunun için değişik yöntemler kullanırız , belki de hiç yapmamamız geken işlemi yapar aynı kodları tekrar tekrar yazarız. Ama artık bu işleme gerek kalkmadı.Pl/Sql içinde goto kullanımı ile isteğimiz mantıksal kontrolü istediğimiz şarta bağlı olarak çalıştırabiliriz.

Goto söz dizimi olarak aşağıdaki gibi kullanılır. “<<“ ve “>>” ifadeleri arasına yazılan etiket(label) bilgisi bizim goto işlemini kullanırken ihtiyacımız olan etiket bilgisidir.

<<label>>

… işlemlerimiz

goto label

Örnek olarak bu işlemin daha iyi anlaşılması için pl/sql de basit bir declare yazalım ve 1 ile 10 arasında rasgele sayı üretelim. Ürettiğimiz bu rasgele sayı 2 olana kadar bu işlemi tekrarlayayım.

Aşağıda hazırladığımız declare mevcuttur.

DECLARE
  deger NUMBER;
BEGIN
  <<tekrar_dene>>
  deger := round(dbms_random.value(1, 10));

  IF deger = 2 THEN
    dbms_output.put_line('deger:2 bulundu');
  ELSE
    dbms_output.put_line('deger:' || deger);
    GOTO tekrar_dene;
  END IF;
END;

Declare yazıp çalıştırdıktan sonra artık goto kullanımının sonuçlarını görebiliriz. Benim test ederken aldığım rasgele sayı üretim sonuçları sizin test işleminizde aynı olmayabilir. Bu kod çalıştığında çıkan sonuç aşağıdaki gibidir.

deger:6
deger:8
deger:6
deger:10
deger:10
deger:7
deger:1
deger:4
deger:7
deger:9
deger:2 bulundu

İlk deneme için çıkan sonuçları yukarıdaki gibidir. Birde ikinci kez deneyelim ve farkı net olarak görelim.

deger:6
deger:4
deger:7
deger:7
deger:3
deger:3
deger:10
deger:5
deger:10
deger:10
deger:7
deger:9
deger:3
deger:8
deger:7
deger:9
deger:6
deger:1
deger:7
deger:8
deger:3
deger:6
deger:3
deger:7
deger:5
deger:1
deger:4
deger:6
deger:6
deger:2 bulundu

Kolay gelsin.

  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.