Örneklerle Oracle PL / SQL Kayıt Türü

İçindekiler:

Anonim

Kayıt Türü nedir?

Kayıt türü, programcının istenen sütun yapısıyla yeni bir veri türü oluşturmasına izin veren karmaşık bir veri türüdür.

  • Yeni bir veri türü oluşturmak için bir veya daha fazla sütunu gruplar
  • Bu sütunların kendi adı ve veri türü olacaktır
  • Bir Kayıt türü verileri kabul edebilir
    • Birçok sütundan oluşan tek bir kayıt olarak VEYA
    • Bir kaydın belirli bir sütununun değerini kabul edebilir
  • Kayıt türü, yeni bir veri türü anlamına gelir. Kayıt türü oluşturulduktan sonra, veri tabanında yeni bir veri türü olarak depolanacak ve aynısı programlarda bir değişken bildirmek için kullanılacaktır.
  • Derleyiciye yeni veri türünü oluşturduğunu bildirmek için 'TYPE' anahtar kelimesini kullanacaktır .
  • Veritabanı nesneleri olarak saklanabilen, veritabanının her yerinde kullanılabilen veya yalnızca alt programların içinde görülebilen " alt program düzeylerinde" oluşturulabilen " veritabanı düzeyinde" oluşturulabilir .
  • Veritabanı seviyesi kayıt türü, tek bir sütunun karmaşık verileri tutabilmesi için tablo sütunları için de bildirilebilir.
  • Bu veri türlerindeki verilere, değişken_adı ve ardından nokta operatörü (.) Ve ardından sütun_adı, yani '. ' na başvurarak erişilebilir.

Veritabanı düzeyinde bildirim için sözdizimi:

CREATE TYPE  IS RECORD( ,);

İlk sözdiziminde, 'CREATE TYPE' anahtar sözcüğünü görebiliriz, bu, derleyiciye bir veritabanı nesnesi olarak belirtilen sütunla "type_name_db" adlı kayıt türünü yaratma talimatı verir.

Bu, herhangi bir blok içinde değil, bireysel bir ifade olarak verilir.

Alt program düzeyinde bildirim için sözdizimi:

DECLARETYPE  IS RECORD( ,);BEGIN;END;

Sözdiziminde, yalnızca alt programın içinde "tür_adı" adlı kayıt türünü oluşturuyoruz.

Her iki bildirim yönteminde de sütunu ve veri türünü tanımlama yolu benzerdir.

Örnek 1: Veritabanı Nesnesi olarak KAYIT Tipi

Bu programda, bir veritabanı nesnesi olarak "Kayıt türü" nün nasıl oluşturulacağını göreceğiz. Dört sütunlu 'emp_det' kayıt tipi oluşturacağız. Sütunlar ve veri türleri aşağıdaki gibidir:

  • EMP_NO (NUMBER)
  • EMP_NAME (VARCHAR2 (150))
  • YÖNETİCİ (NUMBER)
  • MAAŞ (SAYI)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/
Çıktı:
Type created

Kod Açıklaması:

  • Yukarıdaki kod, bir veritabanı nesnesi olarak emp_det türünü oluşturacaktır.
  • Tanımlandığı gibi 4 sütun emp_no, emp_name, manager ve maaş olacaktır.
  • Şimdi 'emp_det' diğer veri türlerine benzer (NUMBER, VARCHAR @, vb.) Ve tüm veritabanında görülebilir. Dolayısıyla bu, bu türdeki değişkeni bildirmek için tüm veritabanında kullanılabilir.

Çıktı:

Veritabanı düzeyinde kayıt türü olarak 'emp_det' türü oluşturuldu.

Örnek 2: Alt program düzeyinde Kayıt Türü - Sütun düzeyinde erişim

Bu örnekte, alt program düzeyinde bir kayıt türünün nasıl oluşturulacağını ve ondan değerlerin sütun düzeyinde nasıl doldurulup getirileceğini göreceğiz.

Alt program düzeyinde 'emp_det' record_type oluşturacağız ve onu doldurmak ve ondan veri görüntülemek için aynısını kullanacağız.

DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGINguru99_emp_rec.emp_no:= 1001;guru99_emp_rec.emp_name:=:'XXX';guru99_emp_rec.manager:= 1000;guru99_emp_rec.salary:=10000;dbms_output.put.line('Employee Detail');dbms_output.put_line ('Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line ('Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line ('Employee Salary: ' ||guru99_emp_rec.salary);dbms_output.put_line ('Employee Manager Number: '||guru99_emp_rec.manager);END;/

Çıktı:

Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000

Kod Açıklaması:

  • Kod satırı 2-8 : 'emp_det' kayıt türü emp_no, emp_name, maaş ve NUMBER, VARCHAR2, NUMBER, NUMBER veri türünün yöneticisi sütunlarıyla bildirilir.
  • Kod satırı 9: guru99_emp_rec değişkeni 'emp_det' veri türü olarak bildirildi. Artık bu değişken, yukarıdaki 4 alan / sütunun tümünü içeren değeri tutabilir.
  • Kod satırı 11: "guru99_emp_rec" in "emp_no" alanını 1001 değeriyle dolduruyor.
  • Kod satırı 12: "guru99_emp_rec" in "emp_name" alanını XXX değeriyle dolduruyor.
  • Kod satırı 13: "guru99_emp_rec" in "yönetici" alanını 1000 değeriyle dolduruyor.
  • Kod satırı 14: 'guru99_emp_rec'in' maaş 'alanını 10000 değeriyle dolduruyor.
  • Kod satırı 15-19: Çıktıda 'guru99_emp_rec' değerinin görüntülenmesi.

Örnek 3: Alt program düzeyinde Kayıt Türü - Satır düzeyinde erişim

Bu örnekte, alt program düzeyinde bir kayıt türünün nasıl oluşturulacağını ve bir satır düzeyinde nasıl doldurulacağını göreceğiz. Alt program düzeyinde 'emp_det' record_type oluşturacağız ve onu doldurmak ve ondan veri görüntülemek için aynısını kullanacağız.

DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME YARCHAR2( 150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGININSERT INTO emp (emp_no, emp_name, salary, manager) VALUES (1002,'YYY',15000,1000);COMMIT;SELECT emp_no, emp_name, salary, manager INTO guru99_emp_rec FROM emp WHERE emp_no=1002;dbms_output.put_line (‘Employee Detail’);dbms_output.put_line (‘Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line (‘Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line (‘Employee Salary: '||guru99_emp_rec. salary);dbms_output.put_line (‘Employee Manager Number: '||guru99_emp_rec.manager);END;/

Kod Açıklaması:

  • Kod satırı 2-8 : 'emp_det' kayıt türü emp_no, emp_name, maaş ve NUMBER, VARCHAR2, NUMBER, NUMBER veri türünün yöneticisi sütunlarıyla bildirilir.
  • Kod satırı 9: guru99_emp_rec değişkeni 'emp_det' veri türü olarak bildirildi. Artık bu değişken, yukarıdaki 4 alan / sütunun tümünü içeren değeri tutabilir.
  • Kod satırı 11: emp_no olarak 1002 verileriyle, emp_name olarak YYY, maaş olarak 15000 ve yönetici numarası olarak 1000 verileriyle emp tablonun doldurulması.
  • Kod satırı 12: Yukarıdaki ekleme işleminin yapılması.
  • Kod satırı 13: "guru99_emp_rec" değişkenini, çalışan numarası 1002 için seçme sorgusundan satır düzeyinde veri olarak doldurma.
  • Kod satırı 15-19: Çıktıda 'guru99_emp_rec' değerinin görüntülenmesi.

Çıktı:

Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000

Not: Kayıt türüne, değeri herhangi bir çıktı moduna yeniden yönlendirilirken yalnızca sütun düzeyinde erişilebilir.