Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

PL SQL Örnekleri 1

Bu yazı dizisi altında projelerimde kullanmış olduğum ve hoşuma giden PL-SQL prosedürlerimi paylaşacağım umarım işinize yarar

———————————————————————————————————

1 – ) İlk prosedürümüz kullanıcı girişinin doğru olup olmadığını kontrol ediyor.

CREATE OR REPLACE PROCEDURE TRNSTELSIM.TV_AUTHENTICATE_USER (

usernamex         NVARCHAR2,

passwordx         NVARCHAR2,

resultx     OUT   NVARCHAR2,

statusx      OUT   INTEGER,

departmentx   OUT   NVARCHAR2,

otherx        OUT   NVARCHAR2,

kullanicikodux  OUT  NVARCHAR2,

siteidx         OUT  NVARCHAR2,

ruhsatnox       OUT  NVARCHAR2,

sistemturux     OUT  NVARCHAR2,

sistemnox       OUT   NVARCHAR2,

grupx           OUT   NVARCHAR2

)

IS

BEGIN

BEGIN

resultx := 1;

SELECT STATUS,DEPARTMENT,OTHER,KULLANICI_KODU,SITE_ID,RUHSAT_NO,SISTEM_TURU,SISTEM_NO,GRUP

INTO statusx,departmentx,otherx,kullanicikodux,siteidx,ruhsatnox,sistemturux,sistemnox,grupx

FROM TV_KULLANICI

WHERE USERNAME = usernamex AND PASSWORD = passwordx;

EXCEPTION

WHEN NO_DATA_FOUND THEN

resultx := 0;

END;

END;

———————————————————————————————————

2- ) İkinci prosedürümüz field ve value ları verilern tabloya insert komutu oluşturuyor. Avantajı  tablomuzda herhangi bir field değişirse prosedürümüz yine de sabit kalıyor

 

CREATE OR REPLACE PROCEDURE INSERT (FIELDS NVARCHAR2, VLS NVARCHAR2

)IS

SQL_STR STRING(3000):=”;

BEGIN

SQL_STR:=  ‘INSERT INTO F_PATH_EDGE ‘ || FIELDS || VLS;

EXECUTE IMMEDIATE SQL_STR;

END INSERT;

 

———————————————————————————————————

3- ) Son bir yılın verisinde ay ve yıla göre gruplama yapan prosedür. Tarih fieldından sadece ay ve yıl bilgisini çekerek grupluyoruz

 

CREATE OR REPLACE PROCEDURE TRNSTELSIM.TV_SP_GR_AYBAZLI_TRXSAYISI(CRS OUT SYS_REFCURSOR,kaydeden NVARCHAR2 ) IS

pkaydeden varchar2(100);

BEGIN

pkaydeden := kaydeden;

OPEN CRS FOR

SELECT EXTRACT(YEAR FROM KAYIT_TARIHI) || ‘-‘ || TO_CHAR(KAYIT_TARIHI,’MM’) As KAYIT_YIL_AY,SUM(TOPLAM_TRX_SAYISI) AS TOPLAM_TRX_SAYISI

FROM TV_GR_YENI_SISTEM

WHERE KAYIT_TARIHI > ADD_MONTHS(SYSDATE, -11)

GROUP BY EXTRACT(YEAR FROM KAYIT_TARIHI) || ‘-‘ || TO_CHAR(KAYIT_TARIHI,’MM’)

ORDER BY EXTRACT(YEAR FROM KAYIT_TARIHI) || ‘-‘ || TO_CHAR(KAYIT_TARIHI,’MM’) ;

END TV_SP_GR_AYBAZLI_TRXSAYISI;

February 18, 2009 - Posted by | Oracle | , ,

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s