PL/SQL Subprograms

Pada pembahasan ini kita akan mempelajari bagaimana menggunakan subprograms, yang mana mengijinkan kita untuk memberi nama dan mengenkapsulasi sebuah rangkaian perintah. Subprograms membantu pembangunan aplikasi dengan mengisolasi operasi-operasi. Seperti membangun blok-blok, yang dapat kita gunakan untuk mendirikan aplikasi-aplikasi yang modular dan mudah dipelihara.

Pembahasan kali ini mendiskusikan topik-topik:

  • Apa itu Subprograms?
  • Keuntungan-keuntungan Subprograms
  • Memahami PL/SQL Procedures
  • Memahami PL/SQL Functions
  • Mendeklarasikan PL/SQL Subprograms
  • Mempaket PL/SQL Subprograms Bersama-sama
  • Parameter Actual versus Formal
  • Notasi Posisi Versus Notasi Nama
  • Menentukan Mode Parameter Subprogram
  • Melewatkan Struktur Data Besar dengan NOCOPY Compiler Hint
  • Menggunakan Nilai-nilai Default untuk Parameter-parameter Subprogram
  • Memahami Pengaliasan Parameter Subprogram
  • Memberi Muatan Lebih Terhadap Nama-nama Subprogram
  • Bagaimana Pemanggilan Subprogram Ditentukan
  • Menerima dan Mengembalikan Banyak Baris Data dengan Table Functions
  • Invoker Rights Versus Definer Rights
  • Memahami dan Menggunakan Rekursi
  • Memanggil Subprograms Eksternal

8.1. Apa itu Subprograms?

Subprograms adalah PL/SQL blocks bernama yang dapat menerima parameter dan dijalankan. PL/SQL memiliki dua tipe subprograms yang disebut dengan procedures dan functions. Secara umum, kita menggunakan sebuah procedure untuk melakukan sebuah aksi dan menggunakan sebuah function untuk menghitung sebuah nilai.

Seperti halnya PL/SQL blocks tak bernama (anonymous), subprograms memiliki sebuah declarative part, sebuah executable part, dan sebuah exception-handling part (opsional). Declarative part mengandung deklarasi-deklarasi dari types, cursors, constants (konstanta), variables, exceptions, dan nested subprograms. Item-item ini merupakan lokal dan berhenti ketika kita keluar dari subprogram tersebut. Executable part mengandung perintah-perintah yang memberikan nilai-nilai, mengontrol eksekusi, dan memanipulasi Oracle data. Sedangkan exception-handling part mengandung exception handlers, yang berurusan dengan exceptions yang muncul selama eksekusi.

Mari kita perhatikan procedure bernama debit_account berikut ini, yang mendebit sebuah rekening bank:

PROCEDURE debit_account (acct_id INTEGER, amount REAL) IS
  old_balance REAL;
  new_balance REAL;
  overdrawn EXCEPTION;
BEGIN
  SELECT bal
  INTO old_balance
  FROM accts
  WHERE acct_no = acct_id;
  new_balance := old_balance - amount;
  IF new_balance < 0 THEN
    RAISE overdrawn;
  ELSE
    UPDATE accts
    SET bal = new_balance
    WHERE acct_no = acct_id;
  END IF;
  EXCEPTION WHEN overdrawn THEN
    ...
END debit_account;

Ketika dijalankan atau dipanggil, procedure ini menerima sebuah nomor rekening dan jumlah yang akan didebit. Ia menggunakan nomor rekening tersebut untuk menampilkan saldo rekening dari database table accts. Lalu, ia menggunakan jumlah debit tersebut untuk menghitung sebuah saldo baru. Jika saldo baru kurang dari nol, sebuah exception dimunculkan; selain itu, rekening bank di-update.

 

 

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26


Bookmark and Share

 

Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi.
Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma, Uranus dsb.

 

Find Related articles