1.
Variable dan Konstanta
PL/SQL
mengijinkan kita untuk mendeklarasikan konstanta dan variable, lalu
menggunakannya di dalam SQL dan perintah-perintah prosedural dimanapun ekspresi
dapat digunakan. Namun perlu diingat, forward reference tidak
diperbolehkan. Maksudnya, kita harus mendeklarasikan konstanta dan variable
sebelum mereferensinya (menggunakannya) di dalam perintah-perintah yang lain,
termasuk pada perintah-perintah declarative lainnya.
6.1
Mendeklarasikan Variable
Variable dapat memiliki tipe data
SQL, seperti CHAR, DATE, atau NUMBER, atau tipe data PL/SQL, seperti BOOLEAN
atau BINARY_INTEGER. Sebagai contoh, asumsikan bahwa kita ingin mendeklarasikan
variable dengan nama part_no untuk menyimpan 4 digit angka dan variable dengan
nama in_stock untuk menyimpan nilai Boolean TRUE atau FALSE. Kita
mendeklarasikan variable-variable tersebut dengan cara sebagai berikut:
part_no NUMBER(4);
in_stock BOOLEAN;
Kita
dapat pula mendeklarasikan nested tables, variable-size arrays (varrays), serta
record dengan menggunakan tipe-tipe data komposit TABLE, VARRAY, dan RECORD.
6.2 Memberikan Nilai ke Variable
Kita dapat memberikan nilai ke
variable dengan tiga cara. Pertama dengan menggunakan assignment operator (:=),
yaitu titik dua diikuti dengan sama dengan. Kita meletakka variable pada sisi
kiri operator dan ekspresi (dapat pula mengandung pemanggilan sebuah function)
pada sisi kanan. Sedikit contoh-contohnya adalah sebagai berikut:
tax := price * tax_rate;
valid_id := FALSE;
bonus := current_salary * 0.10;
wages := gross_pay(emp_id,
st_hrs, ot_hrs) - deductions;
Cara kedua untuk memberikan nilai
ke variable adalah dengan melakukan select (atau fetch) terhadap nilai-nilai
yang ada di dalam database ke variable tersebut. Pada contoh di bawah ini, kita
mengharuskan Oracle untuk menghitung bonus sebesar 10% ketika kita menampilkan
gaji karyawan. Sekarang, kita dapat menggunakan variable bonus di dalam proses
perhitungan lainnya atau menambahkan nilainya ke table di dalam database.
SELECT sal * 0.10 INTO bonus FROM
emp WHERE empno = emp_id;
Sedangkan
cara ketiga untuk memberikan nilai ke variable adalah dengan melewatkannya
sebagai parameter OUT atau IN OUT kepada sebuah subprogram. Seperti pada contoh
di bawah ini, parameter IN OUT mengijinkan kita untuk melewatkan nilai awal ke
subprogram yang sedang dipanggil dan kemudian mengembalikan nilai perubahannya
kepada pemanggilnya:
DECLARE
my_sal REAL(7,2);
PROCEDURE adjust_salary (emp_id
INT, salary IN OUT REAL) IS ...
BEGIN
SELECT AVG(sal) INTO my_sal FROM
emp;
adjust_salary(7788, my_sal); --
assigns a new value to my_sal
6.3 Mendeklarasikan Konstanta
Mendeklarasikan konstanta sama
halnya dengan mendeklarasikan, kecuali bahwa kita harus menambahkan keyword
CONSTANT dan segera memberikan nilai ke konstanta tersebut. Setelah itu, tidak
diperbolehkan adanya pemberian nilai kembali kepada konstanta
tersebut. Pada contoh beirkut
ini, kita mendeklarasikan konstanta dengan nama credit_limit:
credit_limit CONSTANT REAL:=
5000.00;
No comments:
Post a Comment