Apa itu Jenis Rekaman?
Tipe Record adalah tipe data kompleks yang memungkinkan programmer untuk membuat tipe data baru dengan struktur kolom yang diinginkan.
- Ini mengelompokkan satu atau lebih kolom untuk membentuk tipe data baru
- Kolom ini akan memiliki nama dan tipe datanya sendiri
- Tipe Rekaman dapat menerima data
- Sebagai satu record yang terdiri dari banyak kolom ATAU
- Itu dapat menerima nilai untuk satu kolom tertentu dari sebuah record
- Tipe rekaman berarti tipe data baru. Setelah tipe record dibuat, itu akan disimpan sebagai tipe data baru dalam database dan hal yang sama akan digunakan untuk mendeklarasikan variabel dalam program.
- Ini akan menggunakan kata kunci 'TYPE' untuk menginstruksikan compiler bahwa itu membuat tipe data baru.
- Ini dapat dibuat di " level database" yang dapat disimpan sebagai objek database, digunakan di seluruh database atau dapat dibuat di " level subprogram" , yang hanya terlihat di dalam subprogram.
- Tipe record level database juga bisa dideklarasikan untuk kolom tabel sehingga satu kolom bisa menampung data yang kompleks.
- Data dalam tipe data ini dapat diakses dengan mengacu pada variable_name diikuti oleh period operator (.) Diikuti dengan column_name yaitu '
. '
Sintaks untuk deklarasi di tingkat database:
CREATE TYPEIS RECORD( ,);
Pada sintaks pertama, kita dapat melihat kata kunci 'CREATE TYPE' ini menginstruksikan compiler untuk membuat tipe record bernama "type_name_db" dengan kolom yang ditentukan sebagai objek database.
Ini diberikan sebagai pernyataan individu dan tidak di dalam blok mana pun.
Sintaks untuk deklarasi di tingkat subprogram:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
Dalam sintaks, kami membuat jenis record bernama "type_name" hanya di dalam subprogram.
Dalam kedua metode deklarasi tersebut, cara mendefinisikan kolom dan tipe datanya serupa.
Contoh 1: Jenis RECORD sebagai Objek Database
Dalam program ini, kita akan melihat bagaimana membuat "Tipe rekaman" sebagai objek database. Kami akan membuat jenis record 'emp_det' dengan empat kolom. Kolom dan tipe datanya adalah sebagai berikut:
- EMP_NO (NUMBER)
- EMP_NAME (VARCHAR2 (150))
- MANAJER (NOMOR)
- GAJI (NOMOR)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Keluaran:
Type created
Penjelasan Kode:
- Kode di atas akan membuat tipe emp_det sebagai objek database.
- Ini akan memiliki 4 kolom emp_no, emp_name, manajer dan gaji seperti yang ditentukan.
- Sekarang 'emp_det' mirip dengan tipe data lainnya (seperti NOMOR, VARCHAR @, dll.) Dan itu terlihat di seluruh database. Karenanya ini dapat digunakan di seluruh database untuk mendeklarasikan variabel jenis ini.
Keluaran:
Membuat tipe 'emp_det' sebagai tipe record di level database.
Contoh 2: Jenis Rekaman di tingkat Subprogram- Akses tingkat kolom
Dalam contoh ini, kita akan melihat bagaimana membuat tipe record pada level subprogram dan bagaimana mengisi dan mengambil nilai dari level kolom.
Kami akan membuat 'emp_det' record_type di tingkat subprogram, dan kami akan menggunakan yang sama untuk mengisi dan menampilkan data darinya.
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;/
Keluaran:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Penjelasan Kode:
- Baris kode 2-8 : Jenis record 'emp_det' dideklarasikan dengan kolom emp_no, emp_name, gaji dan manajer tipe data NOMOR, VARCHAR2, NOMOR, NOMOR.
- Baris kode 9: variabel guru99_emp_rec dideklarasikan sebagai tipe data 'emp_det'. Sekarang variabel ini dapat menampung nilai yang berisi semua 4 bidang / kolom di atas.
- Baris kode 11: Mengisi bidang 'emp_no' dari 'guru99_emp_rec' dengan nilai 1001.
- Baris kode 12: Mengisi bidang 'emp_name' dari 'guru99_emp_rec' dengan nilai XXX.
- Baris kode 13: Mengisi bidang 'manajer' dari 'guru99_emp_rec' dengan nilai 1000.
- Baris kode 14: Mengisi bidang 'gaji' dari 'guru99_emp_rec' dengan nilai 10000.
- Baris kode 15-19: Menampilkan nilai 'guru99_emp_rec' dalam keluaran.
Contoh 3: Jenis Rekaman di tingkat Subprogram-Tingkat akses baris
Dalam contoh ini, kita akan melihat cara membuat tipe rekaman di tingkat subprogram dan cara mengisinya sebagai tingkat baris. Kami akan membuat 'emp_det' record_type di tingkat subprogram, dan kami akan menggunakan yang sama untuk mengisi dan menampilkan data darinya.
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;/
Penjelasan Kode:
- Baris kode 2-8 : Jenis record 'emp_det' dideklarasikan dengan kolom emp_no, emp_name, gaji dan manajer tipe data NOMOR, VARCHAR2, NOMOR, NOMOR.
- Baris kode 9: variabel guru99_emp_rec dideklarasikan sebagai tipe data 'emp_det'. Sekarang variabel ini dapat menampung nilai yang berisi semua 4 bidang / kolom di atas.
- Baris kode 11: Mengisi emp tabel dengan data 1002 sebagai emp_no, YYY sebagai emp_name, 15000 sebagai gaji dan 1000 sebagai nomor manajer.
- Baris kode 12: Melakukan transaksi sisipan di atas.
- Baris kode 13: Mengisi variabel 'guru99_emp_rec' sebagai data tingkat baris dari kueri pemilihan untuk nomor karyawan 1002.
- Baris kode 15-19: Menampilkan nilai 'guru99_emp_rec' dalam keluaran.
Keluaran:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Catatan: Jenis catatan hanya dapat diakses di tingkat kolom sambil mengarahkan nilainya ke mode keluaran apa pun.