Koray Kırdinli

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

PL SQL Örnekleri 2

4- ) UNION ve LIKE örneği

 

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

pkaydeden varchar2(100);

BEGIN

pkaydeden := kaydeden;

OPEN CRS FOR

SELECT Bildirim_Tipi,Kayit_Sayisi   FROM(

SELECT ‘Yeni Sistem Toplam’ As Bildirim_Tipi ,COUNT(V_NO)  AS Kayit_Sayisi FROM TV_GR_YENI_SISTEM WHERE IPTAL = 0 AND KAYDEDEN LIKE pkaydeden||’%’

UNION

SELECT ‘Yeni Sistem Bölge OK’ As Bildirim_Tipi ,COUNT(V_NO)  AS Kayit_Sayisi FROM TV_GR_YENI_SISTEM WHERE DURUM = ‘1’ AND IPTAL = 0 AND KAYDEDEN LIKE pkaydeden||’%’

)

ORDER BY Bildirim_Tipi  DESC;

END TV_GR_ANLIK_DURUM;

 

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

5- ) IF ELSE örneği

 

CREATE OR REPLACE PROCEDURE TRNSTELSIM.TV_UPDATE_DURUM(durum1 varchar,durum2 varchar,tip varchar)

IS

BEGIN

IF tip = ‘RL’ THEN

UPDATE TRNSTELSIM.TV_RL_ALICI_FREKANS_DEGISIM SET DURUM = durum1 WHERE  DURUM = durum2 ;

END IF;

IF tip = ‘BTS’ THEN

UPDATE TRNSTELSIM.TV_BTS_ILKTRX_DEGISIM SET DURUM = durum1 WHERE  DURUM = durum2 ;

END IF;

IF tip = ‘GR’ THEN

UPDATE TRNSTELSIM.TV_GR_YENI_SISTEM SET DURUM = durum1 WHERE  DURUM = durum2 ;

END IF;

COMMIT;

Reklamlar

Şubat 18, 2009 Posted by | Oracle | , , , | Yorum bırakın

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;

Şubat 18, 2009 Posted by | Oracle | , , | Yorum bırakın