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

Kayıt Türü Nedir?

Kayıt türü, programcının istediği sütun yapısına sahip yeni bir veri türü oluşturmasına olanak veren karmaşık bir veri türüdür.

  • Yeni bir veri türü oluşturmak için bir veya daha fazla sütunu gruplandırır
  • 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ü basitçe yeni bir veri türü anlamına gelir. Kayıt tipi oluşturulduktan sonra veritabanında yeni bir veri tipi olarak saklanacak ve programlarda bir değişken bildirmek için aynısı kullanılacaktır.
  • Anahtar kelimeyi kullanacak 'TİP' derleyiciye yeni veri türünü oluşturduğunu bildirmek için.
  • Şu adreste oluşturulabilir: "veritabanı seviyesi” Veritabanı nesneleri olarak saklanabilen, veritabanının her yerinde kullanılabilen veya “alt program seviyeleri”, yalnızca alt programların içinde görülebilir.
  • Tablo sütunları için de veritabanı düzeyindeki kayıt türü bildirilebilir, böylece karmaşık veriler tek bir sütunda tutulabilir.
  • Bu veri türündeki verilere, değişken_adı, ardından nokta operatörü (.) ve ardından sütun_adı yani ' . '

Veritabanı düzeyinde bildirimin sözdizimi:

Oracle PL/SQL Kayıt Türü

CREATE TYPE <type_name_db> IS RECORD
(
<column 1> <datatype>,
);

İlk sözdiziminde, 'CREATE TYPE' anahtar kelimesini görebiliriz; bu, derleyiciye, bir veritabanı nesnesi olarak belirtilen sütunla birlikte “type_name_db” adlı kayıt türünü oluşturma talimatını verir.

Bu, herhangi bir bloğun içinde değil, bireysel bir açıklama olarak verilmiştir.

Alt program seviyesinde bildirimin sözdizimi:

Oracle PL/SQL Kayıt Türü

DECLARE
TYPE <type_name> IS RECORD
(
<columnl> <datatype>,
);
BEGIN
<execution_section>;
END;

Söz diziminde “type_name” isimli kayıt tipini sadece alt program içerisinde oluşturuyoruz.

Her iki bildirim yönteminde de sütun ve veri tipinin tanımlanma şekli benzerdir.

Örnek 1: Veritabanı Nesnesi Olarak RECORD Türü

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

  • EMP_NO (NUMBER)
  • EMP_NAME (VARCHAR2 (150))
  • MÜDÜR (NUMARA)
  • 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ü yaratacaktır.
  • Tanımlandığı gibi 4 sütun emp_no, emp_name, yönetici ve maaşa sahip olacaktır.
  • Artık 'emp_det' diğerine benzer veri tipi (NUMBER, VARCHAR@ vb. gibi) Ve tüm veritabanında görünür. Dolayısıyla bu, bu türdeki değişkeni bildirmek için veritabanının tamamı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üzeyi Erişimi

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

Alt program düzeyinde 'emp_det' kayıt_tipi oluşturacağız ve aynısını, verileri doldurmak ve görüntülemek için kullanacağız.

Oracle PL/SQL Kayıt Türü

DECLARE
TYPE emp_det IS RECORD
(
EMP_NO NUMBER, 
EMP_NAME VARCHAR2(150),
MANAGER NUMBER, 
SALARY NUMBER
);
guru99_emp_rec emp_det;
BEGIN
guru99_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 Detail
Employee Number: 1001
Employee Name: XXX
Employee Salary: 10000 
Employee Manager Number: 1000

Kod Açıklaması:

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

Örnek 3: Alt Program Düzeyinde Kayıt Türü-Satır Düzeyi Erişimi

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

Oracle PL/SQL Kayıt Türü

DECLARE
TYPE emp_det IS RECORD
(
EMP_NO NUMBER,
EMP_NAME YARCHAR2( 150),
MANAGER NUMBER,
SALARY NUMBER
);
guru99_emp_rec emp_det;
BEGIN
INSERT 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ü, NUMBER, VARCHAR2, NUMBER, NUMBER veri türünün emp_no, emp_name, maaş ve yöneticisi sütunlarıyla bildirildi.
  • 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ın/sütunun tamamını içeren değeri tutabilir.
  • Kod satırı 11: Emp tablosunu emp_no olarak 1002, emp_name olarak YYY, maaş olarak 15000 ve yönetici numarası olarak 1000 verileriyle dolduruyoruz.
  • Kod satırı 12: Yukarıdaki ekleme işlemini gerçekleştiriyoruz.
  • Kod satırı 13: 'Guru99_emp_rec' değişkeni, 1002 numaralı çalışan için seçme sorgusundan satır düzeyinde veri olarak dolduruluyor.
  • Kod satırı 15-19: Çıkışta 'guru99_emp_rec' değeri gösteriliyor.

Çıktı:

Employee Detail 
Employee Number: 1002 
Employee Name: YYY 
Employee Salary: 1000 
Employee Manager Number: 15000

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