Başlangıç > Database, Forms, Oracle, PL/SQL, Reports > pl/sql package örnek

pl/sql package örnek


Merhaba,

Pl/sql de package kullanımına ve oluşturulmasına bir örnek. Çoğu zaman sıklıkla ya da belirli bir işlem için kullanılan birden fazla database işlemimiz var ise (procedure,function vb.) bu işlemlerin hem kullanımı hem de kolay takibi için package kullanılır. Örnek olarak aşağıda bir package oluşturulmuştur.

Package oluşturmak için öncelikle package spec bilgisini oluşturmalıyız. Package spec bilgisinde package içerisinde kullanacak olduğumuz procedure,funciton vb. database işlemimizi belirleriz.

CREATE OR REPLACE PACKAGE example_package IS

  -- Author  : SAMETCELIKBICAK
  -- Created : 08.06.2010 16:46:37
  -- Purpose : pl/sql package örnek

  FUNCTION example_function(param1 NUMBER, param2 NUMBER, param3 VARCHAR2) RETURN VARCHAR2;

END example_package;

Package spec aşamasında belirtmiş olduğumuz database işlemlerimizin içeriği ise package body kısmında doldurulur.

CREATE OR REPLACE PACKAGE BODY example_package IS

  FUNCTION example_function(param1 NUMBER, param2 NUMBER, param3 VARCHAR2) RETURN VARCHAR2 IS
    RESULT VARCHAR2(500);
  BEGIN
    IF param3 = '+' THEN
      RESULT := to_char(param1) || '+' || to_char(param2) || '=' || (param1 + param2);
    ELSIF param3 = '-' THEN
      RESULT := to_char(param1) || '-' || to_char(param2) || '=' || (param1 - param2);
    ELSIF param3 = '*' THEN
      RESULT := to_char(param1) || '*' || to_char(param2) || '=' || (param1 * param2);
    ELSIF param3 = '/' THEN
      RESULT := to_char(param1) || '/' || to_char(param2) || '=' || (param1 / param2);
    END IF;
    RETURN(RESULT);
  END;

BEGIN
  NULL;
END example_package;

Package body kısmında da ihtiyacımız olan database işlemlerini yaptıktan sonra şimdi sıra oluşturduğumuz package ve içindeki nesneleri kullanmaya geldi. örnek olarak da aşağıdaki gibi bir script yazılabilinir.

SELECT example_package.example_function(2, 5, '+') "Toplama",
       example_package.example_function(2, 5, '-') "Çıkarma",
       example_package.example_function(2, 5, '/') "Bölme",
       example_package.example_function(2, 5, '*') "Çarpma"
  FROM dual;

Bu scriptin çıktısıda aşağıdaki gibidir.

Reklamlar
  1. Mustafa
    05 Ağustos 2015, 07:52

    Harika ve açık bir anlatım. Teşekkürler

    Beğen

  2. 06 Ağustos 2015, 00:40

    Yardımcı olabildiğime sevindim. Yorum için teşekkürler.

    Beğen

  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: