ugursinan.com

Menu
  • ORACLE
    • ORACLE DBA
    • ORACLE SQL
    • ORACLE PLSQL
  • MS EXCEL
    • EXCEL VBA
  • İnsan Kaynakları
  • SOSYAL ŞEYLER

PLSQL GOTO Kullanımı (Eğitici) | PLSQL Nedir ? | 6

Ocak 27, 2019

PLSQL GOTO Kullanımı | PLSQL Nedir ?

 

Bu yazımızda  PLSQL Goto deyiminin kullanımını ve sınırlarını paylaşacağız.

PLSQL GOTO Kullanımı

GOTO etiket_ismi;

Etiket ismi, hedef ifadeyi tanımlayan bir etiketin adıdır. Kodumuzun içerisinde, etiket adını aşağıda gösterildiği gibi çift çevreleyen açılı ayraçla çevreleriz.

<<etiket_adi>>;
GOTO ifadesiyle karşılaştığında, kontrolü etiketten sonraki ilk çalıştırılabilir ifadeye aktarır. Yani aslında etikete aktarır ve etiketin altındaki kod satırından çalışmaya devam eder.

PLSQL GOTO Kullanımı Örneği

 

BEGIN
  GOTO ikinci_mesaj;
 
  <<ilk_mesaj>>
  DBMS_OUTPUT.PUT_LINE( '2. çalışan burası oldu' );
  GOTO son_mesaj;
 
  <<ikinci_mesaj>>
  DBMS_OUTPUT.PUT_LINE( 'ilk burası calıştı' );
  GOTO ilk_mesaj;
 
  <<son_mesaj>>
  DBMS_OUTPUT.PUT_LINE( 'en son burası çalıştı' );
 
END;

GOTO Kullanımı örneğimize dikkat edecek olursak. Kod yaramaz bir çocuk gibi bir zıpladığı yerde bir daha zıplamadı. Ya da yavru ceylan gibi sekti de diyebiliriz.

Çıktımız :

ilk burası calıştı
2. çalışan burası oldu
en son burası çalıştı

şeklinde olacaktır.

Kod bloğu normalde yukarıdan aşağı doğru çalışır. Şimdi Begin ifademizden itibaren kod bloğumuzun çalıştığını düşünelim.

ilk olarak GOTO ikinci_mesaj; kodu çalışacaktır ve bir anda <<ikinci_mesaj>> etiketinin ardındaki koddan devam edecektir ve

“ilk burası calıştı ” çıktısını yazdıracaktır.

Ardından  GOTO ilk_mesaj; kodu çalışacak ve

“2. çalışan burası oldu” çıktısını yazdıracaktır. Ardından GOTO son_mesaj; kodu ile çalışacak ve <<son_mesaj>> etiketinin hemen ardındaki kod bloğundan çalışmaya devam edip;

“en son burası çalıştı” çıktısını çalıştıracaktır.

PLSQL GOTO Kullanımı kısıtlamaları

GOTO deyimi bazı kısıtlamalara sahipdir. Her koşulda kullanmamıza izin verilmemektedir.

If , case, loop gibi ifadelerin içerisindeki etiketlere dışarıdan ulaşamayız. Bir örnek ile açıklayalım.

DECLARE
satislar NUMBER;
vergiler NUMBER;
BEGIN
GOTO inside_if_statement;
IF satislar > 0 THEN
<<inside_if_statement>>
vergiler := satislar * 0.1;
END IF;
END;

Sonucunda aşağıdaki hatayı alırız.

PLSQL GOTO Kullanımı

PLSQL GOTO Kullanımı

 

Goto ifadesini kullanamayacağımız diğer durumları listeleyelim

  • PLSQL GOTO deyimini, IF deyiminde, bir ifadeden diğerine, örneğin, IF deyiminden ELSIF veya ELSE deyimine veya bir CASE ifadesi içerisindeki WHEN deyiminden diğerine  aktarmak için kullanamazsınız.
  • Bir exception içerisindeki etikete gidemeyiz. Ya da bir exception içerisinden dışarıya çıkamayız.
  • Bir altprogramdan (function,procedure) diğer bir altprogram içerisine çıkamayız.

<<etiket_adi>>  etikekinden  sonra en az bir satır kod yazılmış olmalıdır. End ifadesinden hemen önce de kullanılamaz.

Kullanımı pek önerilmez. Önerilmeme sebebi de kod içerisinde kontrolsüz dallanmalara sebep olması ve kod okunurluğunu azaltmasıdır.

 

Goto ifadesi kullanımı yazımızın sonuna geldik. Daha Faydalı yazılarda görüşmek dileğiyle 🙂


Diğer PLSQL yazılarım için TIKLAYIN.

Diğer bir kaynak için TIKLAYIN.


 

Share
Google+
Linkedin
Email
Prev Article

Related Articles

Veri Tipleri PLSQL (Eğitici) | PLSQL Nedir ? | 3
PLSQL Veri Tipleri | PLSQL Nedir ? Bu yazı içerisinde, …
Ocak 15, 2019

Veri Tipleri PLSQL (Eğitici) | PLSQL Nedir ? | 3

PLSQL FOR Loop Kullanımı | Oracle For Loops
PLSQL For Loop Kullanımı | Oracle For Loops PLSQL For …
Aralık 29, 2018

PLSQL FOR Loop Kullanımı | Oracle For Loops

About The Author

admin

Leave a Reply

Cevabı iptal et

Yayımlama Akışı

ugursinan.com 'daki tüm yeni içeriklerden haberdar olabilmeniz için

teşekkürler. Bunu daha güzel yazılar yayınlamak için bir doping kabul ediyoruz.

bir sorun var anlayamadık.

Sizi rahatsız etmeyeceğiz. Haftada 1 veya en fazla 2 adet yazı yayımlanabilir.

  • Popüler Olanlar
  • Son Yazılar
  • Yorumlar
  • Etiketler

      ugursinan.com

      • Home
      • Hakkında
      • Gizlilik Politikası
      • İletişim
      Copyright © 2019 ugursinan.com
      Uğur Sinan Sağıroğlu