Wednesday, 27 November 2013

73. Variabel Dan Konstanta pada PL-SQL

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