1. Packages
PL/SQL
mengijinkan kita untuk mem-bundle secara logikal terhadap tipe-tipe,
variable-variable, cursor-cursor, dan subprogram-subprogram yang saling terkait
ke dalam sebuah package.
Package
biasanya memiliki dua bagian: yaitu spesification dan body. Specification merupakan
antarmuka untuk aplikasi-aplikasi kita; ia mendeklarasikan tipe, konstanta,
variable, exception, cursor, dan subprogram yang tersedia untuk digunakan. Body
mendefinisikan cursors dan subprogram dan kemudian mengimplementasikan spesification.
CREATE
PACKAGE emp_actions AS -- package specification
PROCEDURE
hire_employee (empno NUMBER, ename CHAR, ...);
PROCEDURE
fire_employee (emp_id NUMBER);
END
emp_actions;
CREATE PACKAGE BODY emp_actions AS -- package body
PROCEDURE
hire_employee (empno NUMBER, ename CHAR, ...) IS
BEGIN
INSERT
INTO emp VALUES (empno, ename, ...);
END
hire_employee;
PROCEDURE
fire_employee (emp_id NUMBER) IS
BEGIN
DELETE
FROM emp
WHERE
empno = emp_id;
END
fire_employee;
END
emp_actions;
Hanya
deklarasi di dalam package yang terlihat dan dapat diakses oleh aplikasi.
Detail implementasi di dalam package body tersembunyi dan tidak dapat
diakses. Package dapat di-compile dan disimpan di dalam database Oracle, dimana
isinya dapat digunakan secara bersama-sama oleh banyak aplikasi. Ketika kita
memanggil subprogram yang ter-packaged untuk pertama kalinya, seluruh package
akan di-load ke memory. Selanjutnya, pemanggilan berikutnya terhadap
subprogram-subprogram yang terdapat di dalam package tersebut tidak lagi
memerlukan disk I/O. Dengan demikian, package dapat meningkatkan produktifitas
dan meningkatkan performa.
2. Data
Abstraction
Data
abstraction mengijinkan kita untuk mengekstrak property-property penting dari
data sambil mengabaikan detil-detil yang tidak perlu. Sekali kita mendesain
struktur data, kita dapat melupakan detilnya dan fokus terhadap algoritma
desain yang memanipulasi struktur data tersebut.
3. Collections
Tipe-tipe
collection yaitu TABLE dan VARRAY membolehkan kita untuk mendeklarasikan index
berdasarkan table (index-by tables), table bersarang (nested tables), dan array
berukuran fleksibel (variable-size arrays). Collection merupakan kelompok
elemen-elemen terurut, yang seluruhnya memiliki tipe
sama. Setiap elemen memiliki subscript unik yang menentukan posisinya di dalam
collection.
Untuk
mereferensi elemen, gunakan sintaks subscripting standar. Sebagai contoh, pemanggilan
berikut mereferensi elemen kelima di dalam table bersarang / nested table
(dengan tipe Staff) yang dihasilkan oleh function new_hires:
DECLARE
TYPE Staff
IS TABLE OF Employee;
staffer
Employee;
FUNCTION
new_hires (hiredate DATE) RETURN Staff IS
BEGIN ...
END;
BEGIN
staffer :=
new_hires('10-NOV-98')(5);
...
END;
Collections
bekerja seperti array yang dapat kita temui pada bahasa pemrograman generasi ke
4. Juga, collections dapat dilewatkan sebagai parameter. Sehingga, kita dapat
menggunakannya untuk memindahkan kolom-kolom dari data ke dalam dan keluar dari
table-table database atau diantara aplikasi-aplikasi client-side dan stored
subprograms.
No comments:
Post a Comment