Senin, 24 Mei 2010

Pengenalan PL/SQL


PENDAHULUAN
PL/SQL (Procedural Language/Structured Query Language) merupakan sebuah penggabungan antara bahasa pemrograman prosedural (PL) dan SQL syntax.
PL/SQL adalah fasilitas yang disediakan Oracle sehingga pengguna dapat memanfaatkan konsep pemrograman. Dalam PL/SQL dapat digunakan perintah untuk memanipulasi data yang ada dalam database Oracle. PL/SQL membentuk pemrograman terstruktur dalam memproses data.

Beberapa kelebihan PL/SQL dalam database Oracle :
·         PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses didalam server.
·         Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna.
·         PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan
program aplikasi.


STRUKTUR PL/SQL

Struktur PL/SQL mirip dengan struktur bahasa pascal atau delphi yang menggunakan struktur blok, sehingga akan mempermudah pengertian dalam pemrograman dengan PL/SQL. Struktur Blok berisi perintah SQL dengan kondisi yang berbeda. Perintah PL/SQL dapat menangani kesalahan saat dijalankan. Setiap pengetikan dengan menggunakan PL/SQL dalam SQL*Plus selalu diakhiri dengan tanda /(slash). Sintaks penggunaan PL/SQL adalah sebagai berikut :

Declare
   Begin
      Exception
End
Struktur diatas dapat dijelaskan sebagai berikut :

1. Bagian Judul (Header)
Bagian ini hanya digunakan jika PL/SQL diberikan nama,misalnya untuk prosedur atau fungsi. Bagian ini berisi nama blok,daftar parameter, dan pengembalian hasil (return) jika blok adalahfungsi.
2. Bagian Deklarasi (declaration)
Bagian ini untuk membuat deklarasi mengenai semua variable dan konstanta yang direferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini dimulai dengan perintah DECLARE. Jika tidak ada variable atau konstanta yang ingin dideklarasikan bagian ini boleh dihilangkan, bersifat optional.
3. Bagian Eksekusi (Execution).
Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis. Bagian eksekusi ini harus dimulai dengan perintah BEGIN.
4. Bagian Perkecualian (Exception)
Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada waktu eksekusi program PL/SQL, bersifat optional. Jika program tidak memuat cara menangani kesalahan, bagian ini boleh dihilangkan.Setiap pernyataan PL/SQL harus diakhiri dengan tanda titik koma(;) dan semua program PL/SQL harus diakhiri dengan perintah END.

Bentuk Umum Struktur PL/SQL

DECLARE
            variabel tipe_data;
            konstanta CONSTANT tipe_data := nilai;
            ...
BEGIN
            statement_1;
            statement_2;
            ...
EXCEPTION
            WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;
            ...
END;

Contoh Program (tanpa exception)

SQL> SET SERVEROUTPUT ON
SQL>DECLARE
v1  NUMBER(3);
BEGIN
v1 := 3;
DBMS_OUTPUT.PUT_LINE('v1= ' || v1);
END;
/
Contoh Program (dengan exception)
SQL>SET SERVEROUTPUT ON
SQL>DECLARE
X Integer;
BEGIN
X := ‘Belajar Oracle’;
DBMS_OUTPUT.PUT_LINE( TO_CHAR(X) );
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE (‘Kesalahan pada pengisian nilai’);
END;
/

DBMS_OUTPUT merupakan paket yang disediakan oleh Oracle PL / SQL dan PUT_LINE merupakan salah satu prosedur yang dikemas. Menampilkan nilai-nilai pada SQL Plus * terminal yang harus diaktifkan dengan SERVEROUTPUT SET ON terlebih dahulu. Untuk menjalankan kode sampel ini, login ke SQL * Plus. PL / SQL blok diakhiri dengan tanda garis miring / atau garis byitself.


TIPE DATA

Tipe Data dasar :
·         Numerik
Ø  NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER, INT, NUMERIC, REAL, SMALLINT
·         Karakter
Ø  VARCHAR2, CHAR, LONG
·         DATE
·         BOOLEAN
·         ROWID

Tipe Data tambahan :
·         RECORD
·         ARRAY

Type data yang dapat dikenali dalam PL/SQL dapat berupa type data SQL dan type data seperti :

1.      BOOLEAN
Dipakai untuk menyatakan data logika, yaitu TRUE(benar), FALSE(salah), dan NULL(kosong).
2.      BINARY_INTEGER
Digunakan untuk mendeklarasikan bilangan yang tidak mempunyai angka desimal. Tipe dataNATURAL dan POSITIVE merupakan subset dariBINARY_INTEGER.
3.      %TYPE
Tipe data ini dipakai untuk menandakan bahwa variabelyang deklarasikan sama dengan tipe data dari kolom tabel tertentu.
4.      %ROWTYPE
Tipe data ini menandakan bahwa sekelompok variabel adalah sama dengan tipe data darirow suatu tabel tertentu.
5.      Tabel dan Record
Tipe data komposit untuk pemakaian yang lebih kompleks.


VARIABEL DAN KONSTANTA

Pada bagian deklarasi ditempatkan variable dan konstanta yang dipakai oleh pernyataan PL/SQL yang dibuat.

ü  VARIABEL
Adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori komputer.

Bentuk Umum :

variable_name datatype [NOT NULL := value ];

Keterangan :

·      Variable_name adalah nama variabel.
·      Datatype adalah valid PL / SQL datatype.
·      NOT NULL adalah sebuah spesifikasi opsional pada variabel.
·      Nilai atau DEFAULT juga merupakan spesifikasi opsional, di mana anda bisa menginisialisasi variabel.
·      Setiap deklarasi variabel adalah pernyataan terpisah dan harus diakhiri dengan titik koma.
Contoh Deklarasi Variabel :
DECLARE
      X integer;
      Alamat varchar2(40);
      No_induk char(8);
.....
BEGIN
      X                      := 12;
      Alamat            := ‘Gelatik Dalam 391, Bandung’;
      No_induk         := ‘DOG29549’;
END;

Contoh Lain

DECLARE
TYPE v_arr IS VARRAY(25) of NUMBER(3);
v1 v_arr;
v_empno employee.empno%TYPE;
BEGIN
v1(2) := 3;
DBMS_OUTPUT.PUT_LINE ('Nilai v1 (2) =' | | v1 (2));
v_empno := 4;
END;

v  Ketika variabel ditetapkan sebagai TIDAK NULL, Anda harus menginisialisasi variable ketika dideklarasikan.

Contoh di bawah ini menyatakan dua variabel, salah satunya adalah tidak null.

 DECLARE
 salary number(4);
 dept varchar2(10) NOT NULL := “HR Dept”;
Nilai variabel yang bisa berubah dalam pelaksanaan atau pengecualian bagian PL / SQL Block. Kita dapat menempatkan nilai ke variabel dalam dua cara yang diberikan di bawah ini.
  1. Kita dapat langsung memberikan nilai pada variabel.

Sintaks Umum adalah:

variable_name:=  value;

  1. Kita dapat menempatkan nilai ke variabel langsung dari kolom database dengan menggunakan SELECT… INTO statement. INTO pernyataan.

Sintaks Umum adalah:

SELECT column_name
 INTO variable_name
  FROM table_name
  [WHERE condition];

Contoh Program
Program ini di bawah ini akan mendapatkan gaji seorang karyawan dengan id '1116 'dan menampilkannya pada layar.
DECLARE
         var_salary number(6);
         var_emp_id number(6) = 1116;
         BEGIN
         SELECT salary
         INTO var_salary
         FROM employee
         WHERE emp_id = var_emp_id;;
         dbms_output.put_line(var_salary);
         dbms_output.put_line('The employee ' dbms_output.put_line ('Insan'
         || var_emp_id || ' has  salary  ' || var_salary);
END;
 /

ü  KONSTANTA
Digunakan untuk menyimpan sebuah nilai di memori komputer. Nilai yang disimpan bersifat tetap (konstan)

Contoh Deklarasi Konstanta :

DECLARE
pi CONSTANT real             := 3.14;
lebar CONSTANT integer        := 100;

Perbedaan variabel dengan konstanta adalah :

·         Konstanta
Nilai ditentukan pada saat deklarasi dibuat sehingga nilainya tetap pada saat program dieksekusikan.

·         Variabel
Dapat menerima nilai baru atau sebaliknya diubah pada saat program dieksekusi.


KOMENTAR

ü  Digunakan untuk memudahkan proses maintenance
ü  Jenis komentar :
§  /* ... */   : untuk beberapa baris komentar
§  -- ...      : untuk satu bari komentar

Contoh :
/* Ini adalah komentar Oracle */
-- Ini juga komentar Oracle

1 komentar:

rroossyyiidd mengatakan...

Terimakasih penjelasan dan ilmunya.. :)