1.
Attributes
Variable
dan cursor PL/SQL memiliki attributes, yang merupakan property yang
mengijinkan kita mereferensi tipe data dan struktur dari item tanpa mengulangi
definisinya. Column-column dan table-table database memiliki attribute yang
serupa, dimana kita dapat menggunakannya untuk kemudahan pemeliharaan. Tanda
persen (%) bertindak sebagai indikator attribute.
8.1 %TYPE
Attribute %TYPE menyediakan tipe
data untuk variable atau kolom database. Hal ini khususnya berguna ketika
mendeklarasikan variable-variable yang akan menyimpan nilai-nilai database.
Sebagai contoh, asumsikan bahwa ada kolom dengan nama title di dalam
table books. Untuk
mendeklarasikan variable bernama my_title yang memiliki tipe data sama dengan
kolom title, gunakan dot notation (.) dan attribute %TYPE, seperti berikut ini:
my_title books.title%TYPE;
Mendeklarasikan
my_title dengan %TYPE memiliki dua keuntungan. Pertama, kita tidak perlu tahu
tipe data sebenarnya dari kolom title. Kedua, jika kita mengubah definisi
database untuk title (misalnya memanjangkan nilai string-nya), tipe data
my_title berubah secara otomatis mengikuti perubahan tipe data kolom title.
8.2 %ROWTYPE
Di dalam PL/SQL, record digunakan
untuk mengelompokkan data. Record terdiri dari sejumlah field-field terkait
dimana nilai-nilai data disimpan. Attribute %ROWTYPE menyediakan tipe record
yang merepresentasikan baris data pada table. Record dapat menyimpan seluruh
baris data yang di-select dari table atau dihasilkan dari cursor atau cursor
variable.
Kolom
di dalam baris data dan field-field yang terkait dengannya di dalam record
memiliki nama dan tipe data yang sama. Di dalam contoh di bawah ini, kita
mendeklarasikan record bernama dept_rec. Field-field-nya memiliki nama-nama dan
tipe-tipe data yang sama dengan kolom-kolom pada table dept.
DECLARE
dept_rec dept%ROWTYPE; -- declare
record variable
Gunakan
tanda titik (.) untuk mereferensi field-field, seperti ditunjukkan oleh contoh
berikut ini:
my_deptno := dept_rec.deptno;
Jika
kita mendeklarasikan cursor yang menampilkan last name, salary, hire date dan
job title dari employee, kita dapat menggunakan %ROWTYPE untuk mendeklarasikan
record yang menyimpan informasi yang sama, seperti berikut ini:
DECLARE
CURSOR c1 IS
SELECT ename, sal, hiredate, job
FROM emp;
emp_rec c1%ROWTYPE; -- declare
record variable that represents
-- a row fetched from the emp
table
Ketika kita mengeksekusi
perintah:
FETCH c1 INTO
emp_rec;
nilai
di dalam kolom ename dari table emp diberikan ke field ename dari emp_rec,
nilai dari kolom sal diberikan ke field sal, dan begitu seterusnya.
No comments:
Post a Comment