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 TYPEIS 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:
DECLARETYPEIS 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.