OVERLOAD != 'Kelebihan beban'

Jika sebelumnya udah dijelasin secara singkat tentang PACKAGE != (artinya : tidak sama dengan) 'bungkus', maka kali ini aku akan menjelaskan tentang OVERLOAD yang juga != (tidak sama dengan) 'kelebihan beban'. Ya, selain PACKAGE, dalam perintah blok PL/SQL dikenal juga istilah OVERLOAD, yang berarti bagian dari package untuk pembuatan procedure dan function dengan nama yang sama tetapi parameter yang berbeda.

Ciri-ciri overload, diantaranya :
1. memiliki jumlah parameter yang dimiliki berbeda, maksudnya jika dalam sebuah package overload terdapat 2 perintah prosedure menggunakan nama prosedure yang sama berarti di harus memiliki jumlah parameter yang berbeda antara yang satu dan yang lain.
Contoh :
--Overload Specification :
CREATE OR REPLACE PACKAGE coba1
IS
    PROCEDURE tulis(x number);
    PROCEDURE tulis(x number, y number);
END coba1;
/

--Overload Body:
CREATE OR REPLACE PACKAGE BODY coba1
IS
    PROCEDURE tulis(x number)
    IS
    BEGIN
        dbms_output.put_line(x);
    END;
   
    PROCEDURE tulis(x number, y number)
    IS
    BEGIN
        dbms_output.put_line(x||' , '||y);
    END; 
END coba1;
/
--Eksekusi Coba1:
begin
coba1.tulis(1);
coba1.tulis(1,2);
end;

2. memiliki tipe data parameter berbeda, maksudnya adalah jika sebuah package overload memiliki 2 perintah prosedure menggunakan nama prosedure yang sama dengan jumlah parameter yang sama, namun tipe datanya berbeda yang satu dan yang lain.
Contoh :
--Overload Specification :
CREATE OR REPLACE PACKAGE coba2
IS
    PROCEDURE tulis(x number);
    PROCEDURE tulis(x varchar);
END coba2;
/

--Overload Body :
CREATE OR REPLACE PACKAGE BODY coba2
IS
    PROCEDURE tulis(x number)
    IS
    BEGIN
        dbms_output.put_line(x);
    END;
   
    PROCEDURE tulis(x varchar)
    IS
    BEGIN
        dbms_output.put_line(x);
    END;
END coba2;
/
--Eksekusi Coba2 :
begin
coba2.tulis(1);
coba2.tulis('Satu');
end;
/

3. memiliki gabungan dari ciri 1 dan 2, maksudnya package overload tersebut memiliki jumlah parameter yang berbeda dan tipe data yang berbeda pula.
Contoh :
--Overload Specification :
CREATE OR REPLACE PACKAGE coba3
IS
    PROCEDURE tulis(x number);
    PROCEDURE tulis(x varchar, y varchar);
END coba3;
/

--Overload Body :
CREATE OR REPLACE PACKAGE BODY coba3
IS
    PROCEDURE tulis(x number)
    IS
    BEGIN
        dbms_output.put_line(x);
    END;
   
    PROCEDURE tulis(x varchar, y varchar)
    IS
    BEGIN
        dbms_output.put_line(x||' '||y);
    END;
END coba3;
/

--Eksekusi Coba3:
begin
coba3.tulis(1);
coba3.tulis('Satu','- Satu');
end;
/


Komentar

Posting Komentar

Postingan populer dari blog ini

Berawal Dari Keahliannya dalam PERTANIAN

Review Resep Bunda Catering Bandung