PL/SQL Packages

9.7. Overloading Packaged SubprogramsPL/SQL mengijinkan dua atau lebih packaged subprograms untuk memiliki nama yang sama. Opsi ini sangat berguna ketika kita menginginkan sebuah subprogram dapat menerima kumpulan parameter-parameter yang mirip namun memiliki tipe-tipe data yang berbeda. Sebagai contoh, package berikut ini mendefinisikan dua procedure dengan nama journalize:

CREATE PACKAGE journal_entries AS
...
PROCEDURE journalize (amount REAL, trans_date VARCHAR2);
PROCEDURE journalize (amount REAL, trans_date INT);
END journal_entries;
CREATE PACKAGE BODY journal_entries AS
...
PROCEDURE journalize (amount REAL, trans_date VARCHAR2) IS
BEGIN
  INSERT INTO journal
  VALUES (amount, TO_DATE(trans_date, 'DD-MON-YYYY'));
END journalize;
PROCEDURE journalize (amount REAL, trans_date INT) IS
BEGIN
  INSERT INTO journal
  VALUES (amount, TO_DATE(trans_date, 'J'));
END journalize;
END journal_entries;

Procedure pertama menerima trans_date sebagai sebuth character string, dimana procedure kedua menerimanya sebagai sebuah number (Julian day). Setiap procedure menangani data dengan tepat.

9.8. Bagaimana Package STANDARD Mendefinisikan PL/SQL Environment

Sebuah package dengan nama STANDARD mendefinisikan PL/SQL environment. Package spec-nya secara globl mendeklarasikan types, exceptions, dan subprograms, yang tersedia secara otomatis untuk PL/SQL programs. Sebagai contoh, package STANDARD mendeklarasikan function ABS, yang mana menghasilkan nilai absolut dari argumennya, seperti berikut ini:

FUNCTION ABS (n NUMBER) RETURN NUMBER;

Kandungan dari package STANDARD secara langsung dapat dilihat oleh aplikasi-aplikasi. Kita tidak perlu mengkualifikasi referensi kepadanya dengan mengawali menggunakan nama package. Sebagai contoh, kita dapat memanggil ABS dari sebuah database trigger, stored subprogram, Oracle tool, atau aplikasi 3GL, seperti berikut ini:

abs_diff := ABS(x - y);

Jika kita mendeklarasikan ulang ABS di dalam sebuah PL/SQL program, deklarasi lokal kita menimpa deklarasi global. Namun, kita tetap dapat memanggil built-in function tersebut dengan cara menyebutkan referensi kepada ABS, seperti berikut ini:

abs_diff := STANDARD.ABS(x - y);

Kebanyakan built-in functions adalah overloaded. Sebagai contoh, package STANDARD mengandung deklarasi-deklarasi berikut ini:

FUNCTION TO_CHAR (right DATE) RETURN VARCHAR2;
FUNCTION TO_CHAR (left NUMBER) RETURN VARCHAR2;
FUNCTION TO_CHAR (left DATE, right VARCHAR2) RETURN VARCHAR2;
FUNCTION TO_CHAR (left NUMBER, right VARCHAR2) RETURN VARCHAR2;

PL/SQL menetapkan sebuah pemanggilan kepada TO_CHAR dengan mencocokkan jumlah dengan tipe-tipe data dari parameter-parameter formal dan aktual-nya.

 

Pages: 1 2 3 4 5 6 7

 

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 dsb. Harga Rp. 24.800,- (157 halaman)

 

Related Articles

 

Comments

[…] Silahkan melanjutkan membaca pembahasan PL/SQL Packages […]

[…] PL/SQL PackagesPL/SQL Object TypesNative Dynamic SQLMenangani PL/SQL ErrorsInteraksi PL/SQL dengan Oracle […]

wah, dapet materi lagi soal package pl sql..

Leave a comment

(required)

(required)


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word