PL/SQL Packages

Oracle PL/SQL ile yazılan değişken, prosedür, fonksiyon gibi yapıların bir isim altında saklamak için kullanılan packages veya paketler hakkında bilgiler yer alıyor.

Packages

PL/SQL ile geliştirilen prosedür, fonksiyon gibi yapıların bir araya toplandığı yapıya denir.

Oracle PL/SQL paket tanımı tanımlama ve gövde olmak üzere iki kısımdan oluşur.

Paket oluştururken kullanılacak anahtar kelimeler aşağıdaki gibidir.

CREATE [OR REPLACE] PACKAGE <PAKET_ADI> IS | AS
    -- tanımlar
END [<PAKET_ADI>];

Oracle PL/SQL ile paket oluşturma örneği aşağıdaki gibidir.

CREATE OR REPLACE PACKAGE ORNEK_PAKET
IS
    PROCEDURE DONGU(BASLANGIC IN PLS_INTEGER, BITIS IN PLS_INTEGER);
    FUNCTION IHARFBUYUK (METIN  VARCHAR2) RETURN VARCHAR2;
END;

Paket için gereki olan tamılamalar yapıldıktan sonra BODY kısmında tanımlanan prosedür, fonksiyon gibi yapıların içeriği yazılır.

CREATE OR REPLACE PACKAGE BODY ORNEK_PAKET
IS
    -- DONGU
    PROCEDURE DONGU (
        BASLANGIC IN PLS_INTEGER,
        BITIS IN PLS_INTEGER
    ) AS
    BEGIN
        FOR v_sayi IN BASLANGIC .. BITIS LOOP
            DBMS_OUTPUT.put_line('Komut ' ||v_sayi || '. defa çalıştırıldı.');
        END LOOP;
    END DONGU;
    
    -- IHARFBUYUK
    FUNCTION IHARFBUYUK (METIN IN VARCHAR2)
        RETURN VARCHAR2
    AS
    BEGIN
        RETURN UPPER(SUBSTR(METIN, 1, 1)) || LOWER(SUBSTR(METIN, 2));
    END IHARFBUYUK;
END;

Paket içeriğine aşağıdaki gibi erişilir.

PAKET_ADI.PAKET_ICERIGI

Örneğin yukarıda yer alan DONGU prosedürünü çalıştıralım.

SET SERVEROUTPUT ON;
EXECUTE ORNEK_PAKET.DONGU(1, 10);

Benzer biçimde paket içerisinde yer alan diğer nesnelerede erişim sağlanır.

Oluşturulan paketler hakkında bilgi almak için user_objects tablosu kullanılır.

SELECT * FROM user_objects WHERE object_type = 'PACKAGE';

Paket hakkında bilgi almak için DESC anahtar kelimesi kullanılır.

DESC PAKET_ADI;

Paketi silmek için DROP anahtar kelimesi kullanılır.

DROP PACKAGE PAKET_ADI;

Ön tanımlı paketler

Oracle içerisinde çeşitli işlemler için oluşturulmuş paketler yer alır.

DBMS_OUTPUT – Verileri ekranda göstermek için kullanılan pakettir.

DBMS_PIPE – Oturumlar arasında işlem yapmak için kullanılan pakettir.

DBMS_LOCK – Kullanıcı kilit işlemlerin yapıldığı pakettir.

DBMS_STANDART – PL/SQL komutlarında kullanılan standart pakettir.

Örneğin; RAISE_APPLICATION_ERROR fonksiyonu DBMS_STANDART paketinde yer alır.

Paketlerin kullanım nedeni örneklerden de anlaşılacağı üzere birbiriyle ilişkili iş yapan komutların bir araya toplanmasıdır.

Aynı veya birbiriyle ilişkil işlemlerin yapıldığı komutlar için paket kullanımı düzenli bir geliştirme için faydalı olacaktır.

PL/SQL Derslerine buradan ulaşabilirsiniz.

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!