Oracle PL / SQL İmleç: Örtülü, Açık, İmleç FOR Döngü (Örnek)

İçindekiler:

Anonim

PL / SQL'de CURSOR nedir?

İmleç, bu bağlam alanına bir göstericidir. Oracle, ifade hakkındaki tüm bilgileri içeren bir SQL ifadesini işlemek için bağlam alanı oluşturur.

PL / SQL, programcının imleç aracılığıyla bağlam alanını kontrol etmesine izin verir. Bir imleç, SQL ifadesi tarafından döndürülen satırları tutar. İmlecin tuttuğu satır kümesi, etkin küme olarak adlandırılır. Bu imleçler, kodun başka bir yerinden başvurulabilecek şekilde de adlandırılabilir.

Bu eğitimde öğreneceksiniz-

  • Örtülü İmleç
  • Açık İmleç
  • İmleç Nitelikleri
  • FOR Loop Cursor ifadesi

İmleç iki türdendir.

  • Örtülü İmleç
  • Açık İmleç

Örtülü İmleç

Veritabanında herhangi bir DML işlemi gerçekleştiğinde, söz konusu işlemde etkilenen satırları tutan örtük bir imleç oluşturulur. Bu imleçler adlandırılamaz ve bu nedenle kodun başka bir yerinden kontrol edilemez veya bunlara atıfta bulunulamazlar. İmleç öznitelikleri aracılığıyla yalnızca en son imlece başvurabiliriz.

Açık İmleç

Programcıların, üzerinde daha fazla kontrol elde etmek için DML işlemlerini yürütmek üzere adlandırılmış bağlam alanı oluşturmalarına izin verilir. Açık imleç, PL / SQL bloğunun bildirim bölümünde tanımlanmalıdır ve kodda kullanılması gereken 'SELECT' ifadesi için oluşturulur.

Aşağıda, açık imleçlerle çalışmaya dahil olan adımlar bulunmaktadır.

  • İmleci bildirmek

    İmlecin bildirilmesi, basitçe, bildirim bölümünde tanımlanan 'SELECT' ifadesi için adlandırılmış bir bağlam alanı yaratmak anlamına gelir. Bu bağlam alanının adı, imleç adıyla aynıdır.

  • İmleci Açma

    İmleci açmak, PL / SQL'e bu imleç için bellek ayırma talimatı verecektir. İmleci kayıtları almaya hazır hale getirecektir.

  • İmleçten Veri Almak

    Bu süreçte, 'SELECT' ifadesi yürütülür ve getirilen satırlar ayrılmış bellekte saklanır. Bunlar artık aktif kümeler olarak adlandırılıyor. İmleçten veri almak, kayıt düzeyinde bir etkinliktir, bu da verilere kayıtlara göre erişebileceğimiz anlamına gelir.

    Her bir getirme ifadesi bir aktif kümeyi alır ve bu belirli kaydın bilgilerini tutar. Bu ifade, kaydı getiren ve 'INTO' yan tümcesindeki değişkene atayan 'SELECT' ifadesiyle aynıdır, ancak herhangi bir istisna atmayacaktır.

  • İmleci Kapatma

    Şimdi tüm kayıt getirildikten sonra, bu bağlam alanına ayrılan belleğin serbest bırakılması için imleci kapatmamız gerekir.

Sözdizimi:

DECLARECURSOR  IS ;BEGINFOR I IN LOOP… END LOOP;END;
  • Yukarıdaki sözdiziminde, bildirim bölümü imlecin bildirimini içerir.
  • İmleç, imleç bildiriminde verilen 'SELECT' ifadesi için oluşturulur.
  • Yürütme kısmında, bildirilen imleç FOR döngüsünde kurulur ve bu durumda döngü değişkeni 'I' imleç değişkeni olarak davranacaktır.

Örnek 1 : Bu örnekte, bir cursor-FOR döngüsü kullanarak emp tablosundaki tüm çalışan adını yansıtacağız.

DECLARECURSOR guru99_det IS SELECT emp_name FROM emp;BEGINFOR lv_emp_name IN guru99_detLOOPDbms_output.put_line(‘Employee Fetched:‘||lv_emp_name.emp_name);END LOOP;END;/

Çıktı

Employee Fetched:BBBEmployee Fetched:XXXEmployee Fetched:YYY

Kod Açıklaması:

  • Kod satırı 2 : 'SELECT emp_name FROM emp' ifadesi için imleç guru99_det'in bildirilmesi.
  • Kod satırı 4 : Döngü değişkeni lv_emp_name ile imleç için 'FOR' döngüsünün oluşturulması.
  • Kod satırı 5: Döngünün her yinelemesinde çalışan adının yazdırılması.
  • Kod satırı 8: Döngüden çıkın

Not: İmleç-FOR döngüsünde, imlecin açılması, getirilmesi ve kapatılması örtük olarak FOR döngüsü tarafından yapıldığından imleç nitelikleri kullanılamaz.