Type Data Reference merupakan salah satu dari macam-macam
tipe data pada pl/sql yang digunakan untuk
mereferensikan tipe data pada variabel lain.
Attribut %TYPE
%TYPE adalah attribut yang digunakan untuk
mendeklarasikan sebuah variable yang sesuai dengan:
- Definisi
sebuah kolom database
- Deklarasi
variable lain
Selain
itu, %TYPE diawali dengan
- Tabel
dan Kolom Database
- Nama
dari Variabel yang dideklarasikan
Deklarasi Variabel dengan
%TYPE
Syntax:
identifier
table.column_name%TYPE;
Contoh :
emp_name employees.last_name%TYPE;
balance NUMBER(7,2);
min_balance balance%TYPE := 1000;
balance NUMBER(7,2);
min_balance balance%TYPE := 1000;
Penjelasan
:
Pada
contoh diatas, kita membuat 3 buah variabel yaitu Variabel emp_name, balance, dan min_balance dimana Variabel emp_name memiliki tipe yang sama dengan tipe kolom last_name pada tabel employees, lalu
Variabel balance bertipe Number, Dan
Variabel min_balance yang
bertipe sama dengan Variabel balance yang memiliki tipe NUMBER
Attribut %ROWTYPE
%ROWTYPE digunakan untuk mendeklarasikan sebuah
variabel yang sesuai dengan tipe data sejumlah kolom pada tabel atau view di
database. Beda halnya dengan %TYPE yang hanya bisa mereferensikan satu tipe
kolom atau satu variabel saja.
Keuntungan
menggunakan %ROWTYPE :
- Kita
tidak perlu mengetahui berapa jumlah dan tipe data kolom pada tabel atau
view yang ingin kita referensikan
- Adanya
kemungkinan terjadinya perubahan jumlah dan tipe data kolom pada tabel
atau view pada saat run time
- Cocok
digunakan saat menerima data menggunakan SELECT * statement
Syntax :
DECLARE
identifier reference%ROWTYPE;
Contoh :
SET SERVEROUTPUT ON
DECLARE
BEGIN
SELECT * INTO
FROM
WHERE Employee_id =
Col_Emp
employees
%ROWTYPE;BEGIN
SELECT * INTO
Col_Emp
FROM
Employees
WHERE Employee_id =
120;
DBMS_OUTPUT.PUT_LINE
DBMS_OUTPUT.PUT_LINE
DBMS_OUTPUT.PUT_LINE
END;
(Col_Emp.last_name);
DBMS_OUTPUT.PUT_LINE
(Col_Emp.first_name);
DBMS_OUTPUT.PUT_LINE
(Col_Emp.salary);
END;
Pada
Contoh diatas kita membuat sebuah variabel Col_Emp yang mempunyai semua tipe
data pada kolom tabel employees.
Tidak ada komentar:
Posting Komentar